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 |