728x90
코드 작성에 효율적이며, JPQL 에 없는 큰 장점이 몇가지 있다.
1. 컴파일단계에서 에러를 잡아준다.
-> 자바 문법으로 작성하는 QueryDsl 은 컴파일 오류로 잡을 수 있다.
2. 자동완성 기능이 뛰어나다.
-> 메서드가 생각이 나지 않을때 자동완성 기능을 쉽게 사용할 수 있다.
3. 동적 쿼리 작성이 효율적이다
-> 아직 학습하지 않아서 다음에 포스팅.
Entity 클래스는 생략.
JPQL 코드
@Test
public void startJPQL() {
// member1을 찾아라
String qlString =
"select m from Member m " +
"where m.username = :username";
Member findMember = em.createQuery(qlString, Member.class)
.setParameter("username", "member1")
.getSingleResult();
assertThat(findMember.getUsername()).isEqualTo("member1");
}
QueryDsl 코드
@Test
public void startQuerydsl() {
JPAQueryFactory queryFactory = new JPAQueryFactory(em);
QMember qMember = QMember.member;
Member findMember = queryFactory
.select(qMember)
.from(qMember)
.where(qMember.username.eq("member1"))
.fetchOne();
assertThat(findMember.getUsername()).isEqualTo("member1");
}
728x90
'Spring > JPA' 카테고리의 다른 글
Where 다중 파라미터 사용 - 동적쿼리 (0) | 2022.10.12 |
---|---|
BooleanBuilder - 동적 쿼리 (0) | 2022.10.12 |
Querydsl 설정 (0) | 2022.10.09 |
쿼리메소드 - 정렬처리 (0) | 2022.10.09 |
JPQL - Query타입, 결과조회, 파라미터, 프로젝션, 페이징, 조인 (0) | 2022.09.27 |
댓글