[스프링 데이터 JPA] 예제 도메인 모델

윤경·2021년 11월 5일
0

JPA

목록 보기
15/22
post-thumbnail

예제 도메인 모델과 동작 확인

도움되는 설정

엔티티 클래스

ERD

Member.java

@ManyToOne(fetch = FetchType.LAZY): 실무에서는 웬만하면 다 지연로딩으로 세팅. (지연로딩 - 멤버를 조회할 때는 멤버만 딱 조회)

@Setter: 실무에선 가급적 Setter 사용 금지. 예제이며 단순화하기 위해 사용한것.
@NoArgsConstructor AccessLevel.PROTECTED: 기본 생성자를 막고 싶은데, JPA 스펙상 PROTECTED로 열어두어야 함
@ToString: 가급적 내부 필드(연관관계가 없는 필드)에만 사용

changeTeam()으로 양방향 연관관계 한 번에 처리하기(연관관계 편의 메소드)

Team.java

멤버와 팀은 양방향 연관관계, Member.team이 연관관계의 주인, Team.members는 연관관계의 주인이 아님.
따라서, Member.team이 데이터베이스 외래키 값을 변경, 그 반대편은 읽기만 가능

H2 DB 결과

의도한대로 잘 나옴


profile
개발 바보 이사 중

0개의 댓글