2014-02-20 104 views
4

在審計表中,沒有這樣的標準,我們可以使用Criteria.setProjection(Projections.rowCount())來獲取查詢的行數。如何使用hibernate 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

可以在一個字段上進行計數,但那不是我想要的。我想要一個最終結果的行數。應該返回與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

相關問題