2014-02-18 2 views
0

나는 두 개의 도메인이최대 절전 모드 그룹이

WishList{ 
    int id; 
    @ManyToOne 
    Item item; 
} 

Item{ 
int id; 
int productCategory; 
String productName; 
} 

이제 어떻게

를 얻을 수 있도록 WishList에서 쿼리 나에게 그룹을 내가 지금 제품을

(1,1,Mobile) 
(2,2,Microwave) 
(3,3,flashDrive) 
(4,1, Monitor) 

있다고 가정

(1,1,Mobile) 
(4,1, Monitor) 
(2,2,Microwave) 
(3,3,flashDrive) 

사용 중 Hibernate Criteria

어떻게 이것을 수행 ??

답변

2

당신은 당신이 Item

같은
Criteria criteria = hibernetSession.createCriteria(WishList.class); 
criteria.createAlias("item", "itemAlias") 
.setProjection(Projections.projectionList() 
.add(Projections.property("id"),"id") 
.add(Projections.property("itemAlias.id"),"itemAlias.id") 
.add(Projections.property("itemAlias.productCategory"),"itemAlias.productCategory") 
.add(Projections.property("itemAlias.productName"),"itemAlias.productName") 
.add(Projections.groupProperty("itemAlias.productName"))) 
.setResultTransformer(Transformers.aliasToBean(WishList.class)); 
List<WishList> itemList = criteria.list(); 

에 대한 alias을 만들고 난에 구문 오류 >>>>>`메소드 추가 (기준)을 얻고 grouping

+0

에 대한 Projections을 사용할 수 있습니다 Criteria를 최대 절전 모드 사용하는 경우 타입 Criteria는 인수 (PropertyProjection)에 적용되지 않습니다. ' – LynAs

+1

업데이트 된 답변 확인, 프로젝션을 추가하는 것을 잊어 버렸습니다 – Yogesh

+0

업데이트 된 코드를 사용한 후 다른 오류가 발생했습니다'setResultTransformer (ResultTransformer) 메소드가 Projection 유형에 대해 정의되지 않았습니다. 목록 ' – LynAs