-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
양방향 연관관계에 대해서 질문드립니다.
21.06.13 17:43 작성 조회수 529
4
선생님께서 양방향으로 처리하는 것보다 단방향으로 처리하는 것이 더 좋다고 말씀하셨는데 그렇다면 한가지 예시로 Member와 order의 관계에서 회원으로 로그인해서 주문내역을 확인하고 싶을 경우 양방향의 경우 다이렉트로 Member.getOrders로 처리가 가능하지만 단방향의 경우 em.find(Order.class, member.getId())를 통해 한번더 쿼리문을 날려야 되는데 이게 더 맞는 사용방법이라는 말씀이신가요??? 아직 실무 JPA경험이 없어서 왜 그 부분이 더 좋은지 이해가 가질 않습니다.. 강의에서 말씀하시는 끊어줘야 된다는 부분이 어떠한 이유로 끊어줘야되는지 여쭤봐도될까요??
답변을 작성해보세요.
12
김영한
지식공유자2021.06.13
안녕하세요. ksh9241님
연관관계를 두어도 되지만, 여기에서 끊어줘야 한다는 것은 연관관계가 너무 복잡해지기 때문입니다.
회원 -> 주문
회원 -> 장바구니
회원 -> 리뷰
등등 이렇게 회원에 연관관계를 모두 양방향으로 만들면 회원 객체는 너무 많은 연관관계를 가지게 됩니다.
우리가 실제 개발을 할 때는 주문 -> 회원을 참조하는 경우는 많지만, 회원 -> 주문을 연관관계를 가지고 참조하는 경우는 드뭅니다.
주문 자체가 하나의 의미있는 단위이기 때문에 회원을 조회하고, 거기에 있는 주문을 찾기 보다는, 주문 자체를 바로 찾는 경우가 더 많습니다.
이후 JPQL을 학습하게 되면 이런 상황에 연관관계가 없어도 Order를 별도로 조회하는 좋은 방법들을 이해하실 수 있습니다.
감사합니다.
답변 1