我有一张名为Gift的表,它与一个名为ClickThrough的表格有一对多的关系,表示特定礼物被点击了几次.我需要查询所有的Gift对象,按ClickThrough计数排序.我不需要返回的ClickThrough计数,因为我不需要任何事情完成它,我只想使用它为了订购的目的.
我需要查询直接返回一个礼物对象列表,只需点击通过计数.如何使用Criteria API?我可以在这里找到很多关于这方面的相关信息的文档,但是并不像我所需要的那样.
解决方法
如果要返回一个实体或属性的列表结合计数,您将需要一个组.在标准中,这通过ProjectionList和投影来完成.例如
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.