2014-02-20 18 views
4

감사 테이블에는 Criteria.setProjection(Projections.rowCount())을 사용하여 쿼리의 행 수를 얻을 수있는 조건이 없습니다.최대 절전 envers를 사용하여 감사 테이블의 행 수를 얻는 방법

AuditQuery를 사용하여 유사한 작업을 수행 할 수 있습니다. 그러나이 경우 투영을 설정하는 방법을 찾지 못했습니다. AuditQuery에 대한 setProjection 메소드도 있지만, 매개 변수로 AuditProjection이 필요합니다. 내가 할 수있는 비슷한 일이 setProjection(rowCount)일까요?

감사

+0

HTTP : //docs.jboss. org/envers/api-new/org/hibernate/envers/query/projection/class-use/AuditProjection.html'AuditProperty.count()'? –

+0

하나의 필드에서 카운트를 할 수는 있지만, 원하는 것은 아닙니다. 최종 결과에 대한 행 수가 필요합니다. this는 AuditQuery.getResultList(). size()와 동일한 결과를 반환해야합니다. – user2807385

답변

7

당신은 예를 들어, 특정 필드에 계산을 수행 할 수 있습니다

getAuditReader().createQuery() 
    .forRevisionsOfEntity(SomeEntity.class, false, true) 
    .addProjection(AuditEntity.id().count()).getSingleResult() 

또는 당신이 믿을 수있는 개정 번호 :

getAuditReader().createQuery() 
    .forRevisionsOfEntity(SomeEntity.class, false, true) 
    .addProjection(AuditEntity.revisionNumber().count()).getSingleResult() 
+0

예, AuditProperty.count()를 사용하여 주어진 필드에서 카운트를 얻을 수 있습니다. 그러나 여전히, 이것은 전체 쿼리 결과를 행 카운트로 제공하지 않습니다. – user2807385

+0

어쨌든 답장을 보내 주셔서 감사합니다. – user2807385

+0

정상적인 쿼리에 카운트 투영을 추가하면 필요한 것을 얻을 수 있습니까? – adamw