JPA

6.1 다대일

fmoths 2021. 1. 11. 20:54

다대일 관계의 반대 방향은 항상 일대다 관계고 일대다 관계의 반대방향은 항상 다대일 관계이다.

데이터베이스 테이블의 일대다관계에서 외래키는 항상 다쪽에 있다. 따라서 객체 양방향 관계에서 연관관계의 주인은 항상 다쪽이다.

 

- 양방향은 외래키가 있는 쪽인 연관관계의 주인이다.

일대다와 다대일 연관관계는 항상 다에 외래키가 있다. JPA는 외래 키를 가지고 있으므로 연관관계의 주인만 사용한다.

주인이 아닌쪽은 JPQL이나 객체 그래프를 탐색할 때 사용한다.

 

- 양방향 연관관계는 항상 서로를 참조해야한다.

항상 서로 참조하게 하려면 연관관계 평의 메소드를 작성하는 것이 좋다. 양쪽에 한곳에만 작성하거나 양쪽 다 작성할 수 있으면 무한 루프에 빠지지 않도록 조심해야한다.