QueryDSL

(JPA)프로젝션 feat.QueryDSL..

쿠카이든 2022. 6. 18. 15:18
728x90
  • select 절에 조회 대상을 지정하는 것을 프로젝션이라 한다.
    • 프로젝션이 하나면 아래 예제와 같이 해당 타입으로 반환한다.
QItem item = QItem.item;  //프로젝션 대상이 하나
List<String> result = query.from(item).list(item.name);

for (String name : result) {
    System.out.println("name = " + name);
}
  • 반면, 프로젝션 대상으로 여러 필드를 선택하면 QueryDSL은 기본으로 com.mysema.query.Tuple이라는 Map과 비슷한 내부 타입을 사용한다.
  • 조회 결과는 tuple.get() 메소드에 조회한 쿼리 타입을 지정하면 된다.
QItem item = QItem.item;

List<Tuple> result = query.from(item).list(item.name, item.price);
//List<Tuple> result = query.from(item).list(new QTuple(item.name, item.price)); 
//같다.

for (Tuple tuple : result) {
    System.out.println("name = " + tuple.get(item.name));
    System.out.println("price = " + tuple.get(item.price));
}

 

출처 : JAVA 표준 ORM JPA 프로그래밍 (저자 김영한)

728x90

'QueryDSL' 카테고리의 다른 글

동적 쿼리 - BooleanBuilder 사용  (0) 2022.06.25
(QueryDSL) 동적쿼리(feat. BooleanBuilder)  (0) 2022.06.18
QueryDsl 조인 종류  (0) 2022.06.17
페이징과 정렬(feat.queryDSL)  (0) 2022.06.17
검색 조건 쿼리(feat. QueryDSL)  (0) 2022.06.17