2009-12-18 2 views
3

은이 하나의 'SecurityPrincipal'내부 bean의 프라퍼티에 의해 Hibernate 정렬? 내가 Classes.A 'USERPROFILE'다음 한 내 도메인 모델에서

class SecurityPrincipal{ 
private String loginId; 
private String password; 
private Date registeredData; 
private int status; 
} 



class UserProfile { 

private String name; 
private String company; 
private SecurityPrincipa principal 

} 

내가 'USERPROFILE'개체의 분류 결과를 얻을 싶어 간단 properties.Like

을 위해 잘 작동
DetachedCriteria criteria=DetachedCriteria.forClass(UserProfile.class);  

criteria.addOrder(Order.asc("name"); 

내가

criteria.addOrder(Order.asc("principal.status"); 

최대 절전 모드와 같은 내부 bean (SecurityPrincipal 예)의 속성에 액세스하려고 할 때 제공 오류 :

Caused by: org.hibernate.QueryException: could not resolve property: securityPrincipal.status of: com.bigg.ibmd.usermanagement.model.UserProfile at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44) at org.hibernate.persister.entity.AbstractPropertyMapping.toColumns(AbstractPropertyMapping.java:59) at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:31)

속성을 속성으로 정렬하려면 어떻게합니까?

답변

4

이 시도

감사합니다 :

DetachedCriteria criteria=DetachedCriteria.forClass(UserProfile.class);   
criteria.createAlias("principal", "p"); 
criteria.addOrder(Order.asc("p.name")); 

나는 그것을 시도도 확인이 가장 좋은 방법입니다 것을 I를,하지만 나는 그것이 작동해야한다고 생각하지 않았습니다.

0

여러 필드로 필터링하려면 @OrderBy 주석을 사용해야합니다. 예를 들면 :

@OrderBy ("ID, 이름, 어떤 ') 민간 SecurityPrincipa 교장 ... API 2.0은 외부 컬렉션에 대한 가입 생성

에주의를 JPA 기준. 테이블에 일대일이 아닌 일대일 관계가 아닌 경우 복수 결과를 가져옵니다.

@OrderBy ("weight, height") private collection userVitalStatsCollection;

중복을 피하기 위해 데이터베이스보기를 사용하는 것이 편리합니다.