Projection을 사용한 qeuryDsl 결과 반환

Projection 대상이 한 개인 경우

1
2
QItem item = QItem.item;
List<String> result = query.from(item).list(item.name);

여러 컬럼 반환과 튜플

  • Projection 대상으로 여러 필드를 선택
  • com.mysema.query.Tuple 이라는 타입을 사용
    • Map과 유사하게 사용 가능
1
2
QItem item = QItem.item;
List<Tuple> result = query.from(item).list(item.anem, item.price);

빈 생성

  • Bean population 을 사용해서 특정 객체로 반환
    • 프로퍼티 접근
    • 필드 직접 접근
    • 생성자 사용

프로퍼티 접근

  • Projections.bean() 메소드 사용
    • setter 사용하여 값을 셋팅
  • 쿼리 결과와 매핑할 프로퍼티 이름이 다른 경우 as 사용하여 별칭 생성
1
2
QItem item = QItem.item;
List<ItemDTO> result = query.from(item).list(Projections.bean(ItemDTO.class, item.name.as("username"), item.price));

필드 직접 접근

  • Projections.fields()
1
2
QItem item = QItem.item;
List<ItemDTO> result = query.from(item).list(Projections.fields(ItemDTO.class, item.name.as("username"), item.price));

생성자 사용

  • Projections.constructor()
1
2
QItem item = QItem.item;
List<ItemDTO> result = query.from(item).list(Projections.constructor(ItemDTO.class, item.name, item.price));
Spring MVC Test Standalone JUnit with Mockito

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×