애플리케이션 개발/JPA

[JPA] queryDSL

sofiaaa 2023. 1. 13. 10:23
반응형

queryDSL

 

JPA를 사용하다보면, Repository에서 생성하는 쿼리로는 한계가 있다. 

따라서 자바로 SQL문을 작성하고, 간단하게 사용할 수 있다.

 

 

 

Examples

 

Basic query

List<Person> persons = queryFactory.selectFrom(person)
  .where(
    person.firstName.eq("John"),
    person.lastName.eq("Doe"))
  .fetch();

 

Order

List<Person> persons = queryFactory.selectFrom(person)
  .orderBy(person.lastName.asc(), 
           person.firstName.desc())
  .fetch();

 

Subqueries

List<Person> persons = queryFactory.selectFrom(person)
  .where(person.children.size().eq(
    JPAExpressions.select(parent.children.size().max())
                  .from(parent)))
  .fetch();

 

Tuple projection

List<Tuple> tuples = queryFactory.select(
    person.lastName, person.firstName, person.yearOfBirth)
  .from(person)
  .fetch();

 

 

http://querydsl.com/

 

Querydsl - Unified Queries for Java

Unified Queries for Java. Querydsl is compact, safe and easy to learn. <!-- Querydsl Unified Queries for Java Querydsl provides a unified querying layer for multiple backends in Java. Compared to the alternatives Querydsl is more compact, safer and easier

querydsl.com

 

반응형