반응형
엔티티의 Q type을 생성하기 위해선 2가지 방법이 있다
//생성자를 통해 생성
QMember m = new QMember("m");
//스테틱 변수를 활용
QMember m = QMember.member;
스테틱 변수를 활용할 수 있는 이유는 Q Type의 클래스에 들어가 보면
아래 사진 처럼 자기 자신을 스테틱 변수로 저장하는 필드가 있기 때문이다 .
QType 객체를 직접 생성해서 사용할 수도 있지만 static import를 통해 객체를 사용하면 코드를 훨씬 깔끔하게 만들 수 있다.
@Test
public void QueryDSLTest(){
Member member1 = qf
.selectFrom(QMember.member)
.where(QMember.member.username.eq("member1"))
.fetchOne();
assertEquals(member1.getUsername() , "member1");
}
@Test
public void QueryDSLTest(){
//static import 적용
Member member1 = qf
.selectFrom(member)
.where(member.username.eq("member1"))
.fetchOne();
assertEquals(member1.getUsername() , "member1");
}
실행시에 Querydsl을 통해 생성되는 JPQL을 확인하고 싶다면 application.yml에 use_sql_comments:true로 설정해 주면 된다.
spring:
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
show_sql: true #띄어쓰기 8칸
format_sql: true
default_batch_fetch_size: 100
use_sql_comments: true
아래 그림과 같이 /**/ 안에 JPQL 문이 나온다 .
반응형
'JPA > QueryDSL' 카테고리의 다른 글
QueryDSL 공부 4 - QueryDSL 활용2 (join문) (0) | 2021.06.19 |
---|---|
QueryDSL 공부 3 - QueryDSL 활용1 (0) | 2021.06.18 |
QueryDSL 공부 1 - queryDSL 설정 (0) | 2021.06.18 |
Spring boot -QueryDSL 과 JPQL 차이점 (0) | 2020.11.27 |
Spring boot 프로젝트에 QueryDSL 설정 및 검증 (0) | 2020.11.27 |