본문 바로가기

JPA13

about QueryDSL 개인 공부 목적으로 작성한 글입니다. 아래 출처를 참고하여 작성하였습니다. 계속 업데이트 할 예정입니다. 목차 QueryDSL의 종류 QueryDSL 구분 엔티티 클래스를 만들어서 사용하는 타입 JPAQueryFactory 1. QueryDSL의 종류 QueryDSL은 엔티티로 설정된 모델 클래스와 동일한 패키지에 'Q모델'이라는 쿼리타입 클래스를 미리 생성해놓고 메타데이터로 사용하여 쿼리를 메소드 기반으로 작성합니다. QueryDSL 구분 쿼리문을 작성하기 위해서 모두 Q 타입 클래스를 사용합니다. JPAQuery, JPAQueryFactory 클래스를 사용하면 EntityManager를 통해서 질의가 처리되고 이 때 사용하는 쿼리문은 JPQL 입니다. 2. 엔티티 클래스를 만들어서 사용.. 2021. 10. 13.
EntityManager 개인 공부 목적으로 작성한 글입니다. 아래 출처를 참고하여 작성하였습니다. 계속 업데이트 할 예정입니다. 목차 EntityManager란? 1. EntityManager란? 엔티티를 저장하는 메모리상의 데이터베이스라고 볼 수 있습니다. 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 합니다. 하지만 EntityManagerFactory와 달리 Thread-Safe하지 않기 때문에 동시성 문제가 발생할 수 있습니다. 그래서 엔티티 매니저는 스레드간에 공유를 절대로 해서는 안 됩니다. 그래서 일반적으로 EntityManager를 @PersistenceContext로 스프링이 관리해주는 방식으로 사용합니다. @PersistenceContext를 사용해서 Enti.. 2021. 10. 13.
@PersistenceContext 개인 공부 목적으로 작성한 글입니다. 아래 출처를 참고하여 작성하였습니다. 목차 @PersistenceContext 란? @PersistenceContext를 사용해야 하는 이유 1. @PersistenceContext 란? EntityManager를 빈으로 주입할 때 사용하는 어노테이션입니다. 스프링에서는 영속성 관리를 위해 EntityManager가 존재합니다. 그래서 스프링 컨테이너가 시작될 때 EntityManager를 만들어서 빈으로 등록해둡니다. 이 때 스프링이 만들어둔 EntityManager를 주입받을 때 사용합니다. @PersistenceContext로 지정된 프로퍼티에 아래 두 가지 중 한 가지로 EntityManager를 주입해줍니다. EntityManagerFactory에서 새로운 .. 2021. 10. 13.
QueryDSL 적용방법 (3가지) 개인 공부 목적으로 작성한 글입니다. 아래 출처를 참고하여 작성하였습니다. 목차 Intro Gradle 설정 QueryDSL Configuration(Java Config) 테스트용 Entity, Repository QueryDSL 사용방법1. 기본 사용법 QueryDSL 사용방법2. Spring Data Jpa Custom Repository 적용 QueryDSL 사용방법3. 상속/구현 없는 Repository 1. Intro Spring Data JPA 프로젝트에 QueryDSL을 적용하는 세 가지 방법에 대해 알아보겠습니다. 여기서는 gradle을 사용합니다. 2. Gradle 설정 querydsl-jpa : QueryDSL JPA 라이브러리입니다. querydsl-apt : 쿼리 타입(Q)를 생성.. 2021. 10. 12.