休眠条件 排序依据

2022-09-03 03:55:59

我有一个名为 Gift 的表,它与名为 ClickThrough 的表具有一对多关系 - 它指示该特定礼物被点击了多少次。我需要查询所有礼品对象,按点击率计数排序。我不需要返回点击率计数,因为我不需要对它做任何事情,我只想使用它来进行排序。

我需要查询直接返回礼品对象列表,只是按点击次数排序。如何使用条件 API 执行此操作?我可以找到很多关于类似信息的文档,但没有一个像我所需要的。


答案 1

请注意,对于通过此处希望按属性/列排序的其他任何人:

使用此处提到的方法时,未找到任何结果。修复方法是改用。请注意,不同之处在于使用 ,而不是criteria.addOrder(Order.asc(property));addOrderadd;

在这里运行后,我多次遇到此问题,以便快速参考。


答案 2

如果要返回实体或属性的列表以及计数,则需要一个分组依据。在标准中,这是通过 和 完成的。例如:ProjectionListProjections

    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

但是,由于您正在使用,因此您还需要使用AliasToBeanConstructorResultTransformerProjectionList


推荐