2014-07-17 1 views
0

난 내가가 최대 절전 모드 찾기에 은밀한하려고 다음과 같은 SQL 쿼리가 :coverting SQL은 기준을 최대 절전 모드로 집계 함수를 계산

DetachedCriteria detachedCriteria = DetachedCriteria.forClass(table.class); 
detachedCriteria.setProjection(Projections.projectionList() 
      .add(Projections.groupProperty("column_1")) 
      .add(Projections.groupProperty("column_2")) 
      .add(Projections.rowCount())) 
     .addOrder(Order.asc("column_1")) 
     .addOrder(Order.asc("column_2")); 
:

select column_1, column_2, count(*) 
from data_table 
group by column_1, column_2 
order by column_1, column_2 
; 

지금까지 내가 가지고있는 코드입니다

다음과 같은 오류가 발생합니다 : ORA-00979 : GROUP BY가 아닌 표현

최대 절전 모드를 사용하여 SQL 쿼리를 변환하는 올바른 방법입니까? 그렇지 않다면, 더 좋은 방법이 될 것입니다.

또한 반환 된 개수 열을 모델 객체의 임시 속성에 매핑하려고합니다. 이를 구현하는 좋은 방법은 무엇입니까?

 detachedCriteria.setProjection(Projections.projectionList() 
      .add(Projections.groupProperty("column_1")) 
      .add(Projections.groupProperty("column_2")) 
      .add(Projections.sqlProjection( 
        "count(*) as counter", 
        new String[] { "counterproperty" }, 
        new Type[] { Hibernate.LONG } 
       ))) 
       .addOrder(Order.asc("column_1")) 
       .addOrder(Order.asc("column_2")); 

       detachedCriteria.setResultTransformer(Transformers.aliasToBean(modelObject.class)); 

counterProperty되고 ​​난 아마 모델 객체

+0

오타에 추가 일시적인 속성을 :

감사 – EasterBunnyBugSmasher

+0

@EasterBunnyBugSmasher : 잘 잡으세요. 바로 지금 고치고 :) – user3752790

답변

0

나는 내가 아래의 코드를 사용하여 무엇을 찾고 있었다 구현할 수 있었다? "select column_1, column_2, ..."이 아니어야합니까?
관련 문제