Projections.distinct(Projections.count(" objectId"))和Projections.countDistinct(" objectId")之间有什么区别

时间:2016-01-22 10:21:37

标签: java oracle hibernate hibernate-criteria

Projections.distinct(Projections.count("objectId")) 

Projections.countDistinct("objectId")

有谁可以告诉我他们之间有什么区别?何时使用其他? 获得独特计数的正确方法是什么? 两个语句生成的查询是否相同?

1 个答案:

答案 0 :(得分:1)

Projections.distinct(Projections.count("objectId")) 

Projections.distinct可以使用投影组合,例如

Projections.distinct(projectionsList)

其中projectionList的定义如下

ProjectionList projectionsList  = Projections.projectionList();
projectionsList .add(Projections.property("id"));
projectionsList .add(Projections.property("name"));
...

Projections.countDistinct()只是一个基于字段的投影。

所以实际上没什么区别。如果您需要对某些字段组合进行不同计数,则可以使用第一个