반응형

fetch join

    query specified join fetching, but the owner of the fetched association was not present in the select list 설명과 문제해결

    package com.wedul.jpa.school; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.List; @Getter @NoArgsConstructor @Entity @Table public class Classes { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String className; @OneToMany(cascade = CascadeType.ALL, mappedBy = "classes", orphanRemoval =..

    MultipleBagFetchException 문제 발생

    엔티티에 연관되어 있는 다른 테이블의 데이터를 2개 이상 fetch join하려고 시도했다. 예를 들어보면 아래와 같이 Classes엔티티에 oneToMany관계인 student와 teacher 두개에 엔티티를 fetch join으로 가지고 오고자 했다. Classes.java package com.wedul.jpa.school; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.List; @Getter @NoArgsConstructor @Entity @Table public class Classes { @Id @GeneratedValu..

    JPA 다양한 Join 방법 정리 (N+1, queryDSL, fetch join)

    JPA를 사용하다 보면 join을 할 때가 많아진다. join을 어떠한 방법으로 하느냐에 따라서 수행되는 쿼리가 달라지고 성능에 문제가 발생하는 경우도 종종있다. 그래서 다양한 방식의 join 방식을 알아보고 방식에 따라 작업을 진행해 보자. 우선 사용될 entity 두 개를 설명하면 다음과 같다. @Getter @Entity @Table(name = "wedul_classes") @AllArgsConstructor(access = AccessLevel.PROTECTED) @NoArgsConstructor @Builder public class WedulClasses extends CommonEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY..

반응형