@EntityGraph2 @EntityGraph와 Fetch Join Fetch Join 실무에서는 부가적으로 가져올 데이터들이 많아서 N+1문제가 많이 발생한다 -> fetch join으로 해결 N+1 문제란? 모든 Member를 가져오기 위한 쿼리(쿼리수 1개) + 각 Member의 Team이 모두 다르다면 Member 1명 당 Team 프록시 객체 초기화를 하기 위한 쿼리(쿼리수 n개) N+1 문제 해결: Fetch Join Member와 관련된 Team 모두 Select절에서 조회해 한방의 쿼리로 가져온다. MemberRepository 예시 @Query("select m from Member m join fetch m.team") List findMemberWithTeam(); 이렇게 되면 select절에 Member 필드 값 뿐만 아니라, Team의 필드 값까지.. Tech/JPA 2024. 3. 12. @EntityGraph @EntityGraph(attributePaths = {”"}) Spring Data JPA에서 사용하는 어노테이션은로 엔티티 그래프를 정의하는 데 사용된다. 엔티티 그래프는 데이터베이스에서 엔티티와 연관된 다른 엔티티를 로딩할 때 사용되며, 지연 로딩(Lazy Loading)을 효과적으로 방지하고 성능을 최적화하는 데 도움된다. @EntityGraph 어노테이션은 다양한 속성을 제공하며 그 중에 attributePaths는 로딩할 엔티티의 연관 속성을 지정하는 데 사용된다. 예시를 통해 알아보자. @Entity public class Customer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Str.. Tech/JPA 2023. 9. 17. 이전 1 다음 728x90 반응형