-
[JPA] 연관관계(1:N) 매핑하기프로그래밍/Java 2022. 2. 10. 09:52반응형
연관관계 매핑 (1:N)
외래키가 있는 곳이 주인이다!
Team과 Member가 1대다 관계일 때,
Member 테이블이 연관관계의 주인이다. (Many To One 중 Many가 연관관계의 주인이다.)
연관관계의 주인은 비즈니스적으로 중요하지 않다. => N이 그냥 주인이 되는 것.
양방향 매핑시 연관관계의 주인에는 꼭! 값을 세팅해야함.
// XXXXX Team.getMembers().add(member); // OOOOO member.setTeam(team);
객체지향적으로 보면 양 쪽에 값을 세팅해주는게 맞다.
Team.getMembers().add(member); member.setTeam(team);
- 연관관계 편의 메소드를 생성하자
// 로직이 들어가면 메소드명을 changeTeam 등으로 설정 public void setTeam(Team team) { this.team = team; team.getMembers().add(this); } // 위에나 밑에꺼 둘 중에 하나 사용 public void addMember(Member member){ member.setTeam(this); members.add(member); }
- 양방향 매핑시에 무한 루프를 조심하자
단방향 매핑만으로도 이미 연관관계 매핑은 완료!
단방향 매핑을 잘 하고 양방향은 필요할 때 추가해도 됨
반응형'프로그래밍 > Java' 카테고리의 다른 글
[클린 아키텍처 12] 아키텍처 스타일 결정하기 (2) 2024.10.11 [JPA] 상속관계 매핑 (0) 2022.02.15 [JPA] 지연로딩 & 즉시로딩 (0) 2022.01.21 [JPA] 엔티티 데이터 접근 전략 @Access (feat. 필드접근 vs 프로퍼티 접근) (0) 2021.12.28 [JPA] 영속성 관리 (영속성 컨텍스트란?) (0) 2021.12.28