我有一个名为Gift的表,该表与一个名为ClickThrough的表具有一对多关系- 该表指示单击了该特定Gift的次数。我需要查询所有的Gift对象,按ClickThrough计数排序。我不需要返回ClickThrough计数,因为我不需要做任何事情,我只想将其用于订购即可。
我需要查询以直接返回Gift对象的列表,只是按ClickThrough计数排序。如何使用Criteria API做到这一点?我可以找到很多关于此的类似信息的文档,但是没有什么比我需要的要多。
如果要返回实体或属性的列表以及计数,则需要分组依据。在标准中,这通过ProjectionList和完成Projections。例如
ProjectionList
Projections
final ProjectionList props = Projections.projectionList(); props.add(Projections.groupProperty("giftID")); props.add(Projections.groupProperty("giftName")); props.add(Projections.count("giftID"), "count"); //create an alias for the count crit.setProjection(props); crit.add(Order.desc("count")); //use the count alias to order by
但是,由于正在使用ProjectionList,因此还需要使用AliasToBeanConstructorResultTransformer。