본문 바로가기

연관관계2

[JPA] 연관관계 매핑 - 1:1(일대일), N:N(다대다) [스프링/JPA] - [JPA] 연관관계 매핑 - N:1(다대일), 1:N(일대다) 1:1 매핑과 N:N 매핑에 대해 순서대로 살펴보겠습니다. 1:1 (일대일) 1:1 관계는 양쪽이 서로 하나의 관계를 가지는 경우입니다. 테이블에서는 FK(외래 키)가 어느 쪽의 테이블에 있던 양방향 조회가 가능합니다. 따라서 테이블 관점에서 봤을 때 주/대상 테이블 어느 쪽이든 FK가 위치할 수 있습니다. 아래의 2가지 경우를 살펴보겠습니다. MEMBER(회원) 테이블이 주 테이블, LOCKER(사물함) 테이블이 대상 테이블인 경우에 1:1 관계를 살펴보죠. 경우 FK 위치 주 테이블에 FK MEMBER FK를 객체 참조와 비슷하게 사용 가능 개발자 선호 대상 테이블에 FK LOCKER 1:1 -> 1:N 으로 DB 설.. 2020. 2. 1.
[JPA] 연관관계 매핑 - N:1(다대일), 1:N(일대다) [스프링/JPA] - [JPA] 연관관계 매핑 - 1:1(일대일), N:N(다대다) JPA는 다양한 연결 관계가 있습니다. 이 연결 관계들에 대해 하나씩 알아보겠습니다. 고려할 점 엔티티의 연관 관계를 매핑할 때는 고려해야 할 점 3가지가 있습니다. 다중성 단방향, 양방향 연관관계의 주인 위의 3가지 사항을 서로 조합하여 생기는 경우의 수를 가지고 연관관계를 설정해야 합니다. 예를 들어 N:1 단방향이나 N:N 양방향 관계와 같은 경우를 만들 수 있습니다. N:1 (다대일) 데이터 테이블의 1, N 관계에서 외래 키는 항상 다쪽(N)에 있습니다. 따라서 양방향의 경우 항상 N 쪽이 연관관계의 주인입니다. 이 말은 즉 양방향일 경우에는 @OneToMany를 선언한 쪽에서 mappedBy속성을 지정해야 한다.. 2020. 1. 31.