[카우치코딩]포트폴리오 만들기 3주차

Yongjun Lee·2022년 8월 29일
0

데이터의 집합인 Entity 코드 작성을 맡았다. ERD의 칼럼을 코드로 옮기고 연관관계 매핑을 해야 했다. 어떻게 할 줄 몰라서 책 자바 ORM 표준 JPA 프로그래밍을 참고했다. 연관관계를 매핑할 때는 3가지를 고려해야 한다. 1) 다중성 2) 방향성 3) 연관관계 주인이다.

연관관계 매핑

다중성은 다대일, 일대다, 일대일, 다대다 관계를 말한다. 방향성은 단방향, 양방향으로 나뉘며 한 쪽만 참조하면 단방향, 양쪽 모두 참조하면 양방향이라고 한다. 연관관계의 주인은 두 객체 중하나가 데이터베이스 외래 키를 관리하는데 이를 연관관계 주인이라고 한다. 연관관계 주인은 mappedBy속성을 사용하지 않는다.

일대다 단방향

일대다 관계에서 외래키는 다측에 있는데 일측에서 외래키를 관리한다. 반대편 테이블의 외래키를 관리하는 것이다. 이에 저장할 때 INSERT SQL로 한 번에 끝내지 못하고 UPDATE SQL을 추가 실행해야 한다. 관리와 성능 문제를 해결하기 위해서는 일대다 단방향이 아닌 다대일 양방향 매핑을 사용할 수 있다.

다대일 양방향 무한루프 체크

단방향으로 설정하면 한 쪽에서만 참조가 가능하지만 양방향은 서로 참조 가능하다. 따라서 양쪽 모두에서 편의 메서드를 작성하면 무한루프에 빠질 수 있으니 주의가 필요하다.

코드리뷰

멘토님께서 직접 코드리뷰를 해주신다. 👍

0개의 댓글