QueryDsl을 쓰면 좋은 이유
QueryDsl강의를 듣고 정리했다.
QueryDsl
스프링부트 + 스프링데이터 JPA로는 복잡한쿼리와 동적쿼리를 해결하지 못함.
querydsl
를 사용해서 쿼리를 자바 코드로 작성, 문법 오류를 컴파일 시점에 해준다.
@Test
public void jpql() {
String username = "kim"
String query = "select m from Member m " +
"where m.username = :username";
List<Member> result = em.createQuery(query, Member.class)
.getResultList();
}
@Test
public void querydsl() {
String username = "kim"
queryFactory
.select(member)
.from(member)
.where(member.username.eq(username))
.fetch();
}
컴파일 시점에 오류를 발견할 수 있음.
자동완성 가능.
메서드로 뽑아서 재사용이 가능하다.