728x90 반응형 JPA3 [JPA] 패치조인 패치조인 패치조인 패치 조인은 JPA에서 제공하는 특별한 조인 유형으로, 연관된 엔티티를 함께 로딩하도록 지시합니다. 즉, 연관된 엔티티를 한 번에 로딩하여 N+1 쿼리 문제를 피할 수 있습니다. 패치 조인은 JPQL(Querydsl 등을 통해 사용)에서 명시적으로 지정됩니다. 패치 조인을 사용하면 연관된 엔티티를 추가적인 쿼리 없이 로딩할 수 있으므로, 성능상의 이점이 있습니다. N+1이란 N+1은 데이터베이스 쿼리의 성능 이슈 중 하나를 나타내는 용어입니다. 이 문제는 일반적으로 ORM(Object-Relational Mapping) 프레임워크를 사용할 때 발생하며, 특히 JPA와 같은 프레임워크에서 자주 언급됩니다. N+1 문제는 다음과 같은 상황에서 발생합니다: 1번의 쿼리로 N개의 엔티티를 가져.. 2024. 2. 10. [JPA] 테이블 전략 설명 조인 전략 (Joined Strategy) 설명: 각 클래스마다 테이블을 따로 생성하고, 자식 클래스의 테이블은 부모 클래스의 테이블과 조인으로 연결됩니다. 상황: 학교에는 학생과 선생님들이 있습니다. 각 학생과 선생님은 서로 다른 테이블에 저장되어야 합니다. 사용 이유: 학생과 선생님은 각각 고유한 속성을 가지며, 데이터를 정규화하여 관리하고 싶습니다. 구현 방법: @Entity @Inheritance(strategy = InheritanceType.JOINED) public class Person { // 공통 속성 } @Entity public class Student extends Person { // 학생 특화 속성 } @Entity public class Teacher extends Perso.. 2024. 2. 1. [JPA]영속성 컨텍스트 영속성 컨텍스트 *영속성 컨텍스트란 더보기 엔티티를 영구 저장하는 환경을 의미 *영속성 컨텍스트 주요 기능 더보기 객체 추적 (Object Tracking): 영속성 컨텍스트는 어떤 객체가 변경되었는지 추적합니다. 이러한 변경 내용은 데이터베이스에 동기화되기 전까지 메모리에 유지됩니다. 지연 로딩 (Lazy Loading): 영속성 컨텍스트는 필요한 순간까지 연관된 객체를 로딩하지 않고, 실제로 사용될 때 로딩합니다. 이를 통해 성능을 최적화할 수 있습니다. 동일성 (Identity): 영속성 컨텍스트는 객체의 동일성을 유지합니다. 즉, 같은 엔터티를 나타내는 두 객체가 메모리 상에서는 동일한 객체로 취급됩니다. 트랜잭션 관리: 영속성 컨텍스트는 트랜잭션 범위 내에서 데이터베이스와의 작업을 관리합니다. .. 2024. 1. 29. 이전 1 다음 728x90 반응형