Spring Boot/JPA

Spring Boot 양방향 vs 단방향

최-코드 2024. 7. 11. 00:37

일대다 단방향 : 

  • 다인 부분을 저장할 때는 문제가 없지만, 일인 부분을 저장하려고 할 때 일인 부분에 속하는 다인 부분을 저장을 하고 그 이후 외래키를 설정하기 위한 update 쿼리가 발생한다.
  • 따라서 일대다 단방향 매핑이 필요한 경우 그냥 다대일 양방향 연관 관계를 매핑하는 것이 추후 유지보수에 수월하다.

다대다 연관 관계 : 

  • 중간 테이블이 숨겨져 있기 때문에 개발자가 모르는 복잡한 조인의 쿼리가 발생할 수 있다.
  • 다대다 관계를 일대다, 다대일로 풀어서 사용하자.
  • 실무에서 절대 사용 금지

일대일 연관 관계 : 

다대일 연관 관계:

  • 다대일 양방향 관계는 객체를 복잡하게 만들 수 있다. 예를 들어 유저 엔티티는 다양한 엔티티와 관계를 맺는데 모두 양방향 관계로 맺을 시 매우 복잡해진다. 또한 N+1 문제가 발생할 확률이 높다.
  • 따라서 기본적으로 단방향으로 설정한 다음, 나중에 역방향으로 객체 탐색이 꼭 필요하다고 느낄 때 추가하는 것이 바람직하다.