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