Open berryberrybin opened 1 year ago
Fetch Join
과 Entity Graph
있음interface LockerRepository: CrudRepository<Locker, Long> {
/* fetch join example */
@Query("select l from Locker l left join fetch l.member where l.id = :lockerId")
fun findByIdWithFetchJoin(lockerId: Long): Locker
/* entity graph example */
@EntityGraph(attributePaths = ["member"])
fun findTopById(lockerId: Long): Locker
}
1:1 매핑시 N+1 문제
양방향 OneToOne 관계
에서는 지연로딩이 동작 안함Member 와 Locker 코드
Locker 엔티티
왜 Locker를 조회하는데 추가적으로 Member 쿼리가 발생한것인가?
반대로 Member Entity 클래스를 조회할 때는 Locker에 대한 정보를 가지고 있기 때문에 프록시 객체를 생성 후 지연로딩으로 쿼리를 하게 됨