728x90
반응형
[1:1] 관계와 거의 유사하지만 하나의 User가 여러 UserHistory를 가질 수 있는 관계이다.
[1:N], [N:1] 관계는 상황에 따라 둘다 걸어 양방향에서 참조가 가능하게 할 수 도 있고 한쪽 방향에서만 걸어줄 수도 있다.
💡 1:N 릴레이션 (주 테이블)
매우 간단하다. (기본적인 것은 1:1 릴레이션 참고!)
- @OneToMany 어노테이션을 붙여준다.
- 1:1 관계에서 주 테이블(User)에서 대상 테이블(UserHistory) 타입의 속성을 선언했다면,
- 1:N 관계에서는 대상 테이블(UserHistory)타입을 갖는 List타입으로 속성을 선언해주면 된다.
(UserEntity)
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id", insertable = false, updatable = false)
private List<UserHistory> userHistory = new ArrayList<>();
User에서 UserHistory테이블을 삽입, 갱신하지 못하도록 설정
💡 N:1 릴레이션 (대상 테이블)
보통 1:N 관계로 세팅하지만 N:1 관계를 추가해 대상 테이블(UserHistory)에서 주 테이블(User)을 참조 할 수 있게 한다.
(UserHistory)
@ManyToOne
private User user;
N:N 관계는 복잡하여 잘 사용하지 않는다.
728x90
반응형
'🍃SpringFramework > SpringDataJPA' 카테고리의 다른 글
[JPA] Cascade. 영속성 전이 (0) | 2023.09.10 |
---|---|
[JPA] JPA - MySQL 연동 (0) | 2023.09.10 |
[JPA] 1:1 Relation. 관계 설정 (0) | 2023.09.10 |
[JPA] Entity Listener. 엔티티 리스너 (0) | 2023.09.10 |
[JPA] JPA Annotation. 어노테이션 (0) | 2023.09.10 |