Hibernate와 JPA2 Criteria Builder [1]를 사용하여 엔티티의 멤버가 아닌 메소드의 결과로 주문할 수 있습니까?JPA2 + Hibernate + Order By
public class X { protected X() {} public String member; public String getEvaluatedValue() { // order by return "a status calculated with various members"; } }
내가 원하는 것은 getEvaluatedValue()의 결과에 의한 주문입니다. 그게 가능하니?
고맙습니다.
편집 : 추가 답변.
내가 @Formular를 사용하지 않는하지만 일반 JPA2은 확실히 당신이 바로 동적 데이터로 주문 할 기회가없는 나는 비록
EntityManager em = ...; QueryBuilder builder = em.getQueryBuilder(); SomeQueryClass query = builder.createQuery(MyTargetClass.class); query.orderBy(builder.asc(... some code...));. 그러나 if-else 또는 어떤 명령문 (QueryBuilder로 정의)을 사용하여 order-by 블록을 지정하도록 허용 할 수 있습니까?
[1] http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html_single/#querycriteria
그것은 물론 단지 일례이다 :
은 EvaluatedValue Comparable를 구현하는 유형 만들기. 문제는 다양한 멤버에 따라 이벤트 상태를 계산해야한다는 것입니다. 계산되기 때문에 정렬 목적으로 데이터베이스에 저장하는 것은 의미가 없습니다. – Jan@Jan 네, 그렇습니다. 그러나 나는 데이터베이스가 어쨌든 결과 정렬에 좋은 역할을 할 것이라고 생각하지 않는다. 왜냐하면 색인의 부족 때문이다. 내 이해가 당신이'@ Formula'를 사용하고 있고 평범한 JPA2.0을 사용하고 있지 않기 때문에 좀 더 파헤쳐 보겠다. (그래서 아마도 최대 절전 모드 일 것이다.) –
회신을위한 초기 게시물보기 – Jan