Java/JPA 3

OneToOne 관계에서의 지연 로딩과 N+1 문제 심층 분석

OneToOne 관계에서의 지연 로딩과 N+1 문제 심층 분석샘플 엔티티 관계 Team ▲ ▼ │ │ N │ │ 1 │ │ │ │ Member ◄──── 1:1 ────► Profile샘플 엔티티@Entity class Member( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_id") val id: Long? = null, val name: String, val email: String, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(n..

Java/JPA 2025.02.21

Spring Data JPA - join, 페이징 정리

ToMany, ToOne 관계에서 Spring Data JPA로 join시 페이징 처리에 대한 정리입니다.오늘 포스트는 Spring Data JPA에서는 ToOne, ToMany 관계의 join의 페이징 하는 방법이 다룹니다. 두 관계에 처리 방법이 다릅니다. 그리고 최적화 내용까지 다룹니다. 먼저, ToOne의 경우에는 fetchJoin으로 페이징쿼리를 하는게 어렵지 않습니다.join시 row수가 증가하지 않기 때문입니다.ToMany, OneToMany의 경우에는 (ManyToMany는 사용하지 않습니다.) 페이징 처리가 쉽지않습니다. ToOne 관계는 fetchjoin으로 조회합니다.ToMany 관계는 지연로딩으로 조회합니다. 지연로딩 최적화를 위해 hibernate.default_batch_size..

Java/JPA 2024.08.21