【问题标题】:What is the difference between Projections.distinct(Projections.count("objectId")) and Projections.countDistinct("objectId")Projections.distinct(Projections.count("objectId")) 和 Projections.countDistinct("objectId") 有什么区别
【发布时间】:2016-04-28 21:51:52
【问题描述】:
Projections.distinct(Projections.count("objectId"))
和
Projections.countDistinct("objectId")
谁能告诉我它们之间有什么区别?什么时候使用一个而不是另一个?
哪个是获得不同计数的正确方法?
两个语句生成的查询是否相同?
【问题讨论】:
标签:
java
oracle
hibernate
hibernate-criteria
【解决方案1】:
Projections.distinct(Projections.count("objectId"))
Projections.distinct 可以使用投影组合,例如
Projections.distinct(projectionsList)
projectionsList 是这样定义的
ProjectionList projectionsList = Projections.projectionList();
projectionsList .add(Projections.property("id"));
projectionsList .add(Projections.property("name"));
...
Projections.countDistinct() 只是一种基于字段的投影。
所以其实没有区别。如果您需要某些字段组合的不同计数,则可以使用第一个