2014-02-20 103 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

相关问题