본문 바로가기

웹 개발/Spring

[Spring] JPA - @OneToOne 조인 전략을 left join -> inner join 으로 변경하기

Entity 객체 조회 시 Hibernate SQL 로그를 확인해보니,

@OneToOne으로 매핑한 객체에 left join(= left outer join)이 사용되는 것을 확인했다.

 

경험해본 RDBMS들의 Optimizer는 모두 left join보다 inner join을 사용했을 경우 성능이 더 좋았기 때문에

필수적인 경우가 아니면 left join을 모두 inner join으로 바꾸고 싶었다.

 

생각해보면 연관된 외래키가 nullable인 경우에는 left join으로 가져와야 하는 것이 당연하기 때문에

@ManyToOne, @OneToOne의 default 조인 전략이 left join인 것 또한 당연하다.

 

참고: 

siyoon210.tistory.com/57

 

JPA 조인 전략 변경하기

JPA 조인(JOIN) 전략 엔티티(Entity)들 간의 관계가 맺어져 있다면, JPA는 조인(JOIN)을 이용해서 데이터베이스를 조회하게 됩니다. 조인전략중에 성능이 가장 좋은 조인 전략은 내부조인(INNER JOIN)입

siyoon210.tistory.com