QueryDSL이 무엇인가?
QueryDSL이란?
엔티티 클래스를 기반으로 쿼리를 생성하는 도구이다.
Entity 클래스를 가지고 동일한 클래스의 Q타입 클래스를 만들어서
해당 Entity를 가지고 QueryDSL을 작성할 수 있게 만든다.
QueryDSL을 왜 사용하는가?
쿼리 작성을 자바 코드로 작성하기 때문에 문법 오류 또는 오타가 났을 때 컴파일 시점에서 발견할 수 있고
복잡했던 쿼리나 동적인 쿼리 작성을 편리하게 구현할 수 있다.
자바 코드로 작성하긴 하지만 문법이 SQL과 비슷하기 때문에 비교적 쉽게 학습이 가능하다.
JPQL로 작성한 쿼리와 QueryDSL로 작성한 쿼리 비교
Member에서 name이 nijy인 회원을 조회
JPQL
public void jpql() {
String name = "nijy";
String query = "select m from Member m where m.name = :name;
List<Member> result = em.createQuery(query, Member.class).getResultList();
}
QueryDSL
public void querydsl() {
String name = "nijy";
List<Member> result = queryFactory.select(member)
.from(member)
.where(member.name.eq(name))
.fetch();
}
'QueryDSL' 카테고리의 다른 글
스프링 부트 3에서 QueryDSL 설정하기 (0) | 2024.01.13 |
---|