querydsl 5

QueryDSL 쪄먹기

querydsl JPA와 querydsl querydsl 시작하기 EntityManager와 JPAQueryFactory를 주입/생성한다. private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) { this.em = em; this.queryFactory = new JPAQueryFactory(em); } @Bean JPAQueryFactory jpaQueryFactory(EntityManager em) { return new JPAQueryFactory(em); } 위처럼 직접 Constructor를 작성해도 좋고, 아래처럼 스프링 컨테이너가 ..

스프링 2023.10.23

QueryDSL 볶아먹기

QueryDSL 프로젝션과 반환 프로젝션이란? 질의하는 대상이다. select member.name from member처럼 간단한 질의의 프로젝션은 String, 하나의 타입만을 가진다. 물론 select member from member 역시 하나의 타입, Member를 가진다. 두 개 이상의 타입을 가지면 querydsl에서 제공하는 Tuple 타입을 사용하게 된다. Tuple타입을 persistence layer 이외에서 사용하는 것은 좋지 않다. 이를 변환할 DTO를 정의하여 사용한다. DTO 조회 그럼 이제 DTO로 조회하는 법을 알아보자. 순수 JPA 순수 JPA로 작성하면 다음과 같다. List result = em.createQuery( "select new study.querydsl.d..

스프링 2023.10.22

QueryDSL 먹어버리기

QueryDSL 특징 자바 코드로 query를 보낼 수 있다. -> 컴파일 과정에서 문법 오류를 발견할 수 있다. 세팅 build.gradle plugins와 queryDSL이 자동으로 생성하는 디렉토리 경로 plugins { id 'org.springframework.boot' version '2.2.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' } //querydsl 추가 시작 def querydslDir = "$buildDir/generated/querydsl" querydsl..

스프링 2023.10.20