JPA 1대N 관계 양방향 매핑 상황별 쿼리 갯수 예측
·
개발(레거시)/JPA
첫 번째 상황 package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import java.util.List; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManag..
[JPA] N + 1 문제
·
개발(레거시)/JPA
보충 학습 후 재정비가 필요한 글입니다. N + 1 문제란 요청이 1개의 쿼리로 처리 되길 기대했는데, N개의 추가 쿼리가 발생하는 현상이다. N + 1 문제는 즉시 로딩과 지연 로딩 전략 각각의 상황에서 발생할 수 있다. 즉시 로딩에서 N + 1 이 생기는 이유 JPQL이란 Java Persistence Query Language의 약어로, 엔티티 객체를 대상으로 쿼리를 작성할 수 있도록 해준다. 즉시 로딩에서 발생하는 이유는 JPQL을 사용하는 경우 전체 조회를 했을 때, 영속성 콘텍스트가 아닌 데이터베이스에서 직접 데이터를 조회한 다음 즉시 로딩 전략이 동작하기 때문이다. 다시 말하자면, JPQL은 즉시 로딩 쿼리를 만들때, 연관관계가 있는 엔티티는 신경 쓰지 않고, 조회 대상이 되는 엔티티를 기준..
이하눌
'개발(레거시)/JPA' 카테고리의 글 목록