QueryDSL에서 사용하는 주요 메서드들은 크게 JPQL-like 메서드와 BooleanExpression 메서드로 나눌 수 있습니다. 각각의 메서드는 QueryDSL의 주요 기능을 수행하며, JPQL과 유사한 방식으로 조건을 생성하거나, 동적 쿼리를 작성할 때 유용합니다. 아래는 주요 메서드들과 그 설명입니다.
JPQL과 유사한 방식으로 쿼리를 작성할 수 있도록 지원하는 메서드들입니다.
select()
SELECT 절에 사용할 필드를 지정합니다.
예시:
QUser user = QUser.user;
JPAQuery<User> query = new JPAQuery<>(entityManager);
List<User> users = query.select(user)
.from(user)
.fetch();
from()
쿼리의 대상이 되는 테이블을 지정합니다.
예시:
query.from(user);
where()
조건을 지정합니다. BooleanExpression을 활용하여 동적 조건도 추가 가능합니다.
예시:
query.where(user.age.gt(20));
join()
, leftJoin()
, rightJoin()
테이블 간 조인을 수행합니다.
예시:
query.select(order)
.from(order)
.join(order.user, user)
.where(user.name.eq("John"));
groupBy()
그룹화 기준을 지정합니다.
예시:
query.groupBy(user.age);
having()