배경
- User 테이블에는 @OneToOne 관계의 PiBasic 이라는 테이블이 있다.
- PiBasic에 FK가 있고 연관관계의 주인으로 설정되어 있으며, 양방향 매핑이 된 상황
문제
- User를 조회할 때마다 PiBasic이 항상 같이 조회됨.
- 특히, xxxToMany 관계로 다수의 유저가 연관관계로 설정되어있을 때 PiBasic 으로 인한 N+1 쿼리 발생
조치
@OneToOne(fetch = LAZY)
설정으로 해결하려고 했지만, 연관관계의 주인이 PiBasic으로 설정되어있기 때문에 LAZY 로딩이 되지 않는 이슈 발생
- 따라서, fk 위치를 PiBasic이 아닌, User가 PiBasic에 대한 FK를 갖고있도록 조치