QMember member = new QMember("m")
QMember member = QMember.member
public static final QMember member = new QMember("member1");
이렇게 QMember
클래스에 인스턴스가 static으로 선언되어있기 때문에 2번 방법으로 선언해도 된다.
+) QMember
를 이용하는 클래스에서 QMember
를 static으로 선언하면 코드가 더 깔끔해진다.
import static study.querydsl.entity.QMember.*;
@SpringBootTest
@Transactional
public class QuerydslBasicTest {
...
@Test
public void startQuerydsl3() {
Member findMember = queryFactory
.select(member)
.from(member)
.where(member.username.eq("member1"))
.fetchOne();
assertThat(findMember.getUsername()).isEqualTo("member1");
}
}
Querydsl을 사용하면 JPQL
을 직접 확인할 수 없는데
application.yml
에 다음과 같은 코드를 추가하면 된다.
spring.jpa.properties.hibernate.use_sql_comments: true
위 테스트 코드를 실행하면
select member1
from Member member1
where member1.username = ?1
위와 같은 JPQL이 나온다.
여기서 member
이 나오는 이유는 QMember
의 기본 인스턴스 별칭이 member1
로 설정되어있기 때문이다.
public static final QMember member = new QMember("member1");
참고 :