JPA/QueryDSL
QueryDSL 공부 2 - Q-Type 활용
UGO04
2021. 6. 18. 18:06
반응형
엔티티의 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 문이 나온다 .

반응형