【问题标题】:How to apply order on hibernate projection result如何在休眠投影结果上应用订单
【发布时间】:2012-03-16 09:06:15
【问题描述】:

我使用了以下休眠标准。

Criteria criteria = session.createCriteria(Student.class);
        ProjectionList projectionList = Projections.projectionList();
       projectionList.add(Projections.groupProperty("studentId"));
       projectionList.add(Projections.count("studentId"));
        criteria.setProjection(projectionList);
      return criteria.list();

这会返回一个对象列表,这些对象有两个字段,studentId 和 count(studentId)。我想按 count(studentId) 降序对这个列表进行排序。我怎么做这个休眠?

目前我正在接受

{[1, 5], [2, 7], [3,4]} 

我想要这个

{[2, 7], [1, 5], [3,4]}

解决方案: 这解决了这个问题:)

  Criteria criteria = session.createCriteria(Student.class);
            ProjectionList projectionList = Projections.projectionList();
           projectionList.add(Projections.groupProperty("studentId"));
           projectionList.add( Projections.alias(Projections.count("studentId"),"count"));
            criteria.setProjection(projectionList);
           criteria.addOrder(Order.desc(("count")));
            return criteria.list();

【问题讨论】:

    标签: java hibernate list


    【解决方案1】:

    由于没有接受答案 - 我对您自己的解决方案进行了格式化和简化:

    Criteria criteria = session.createCriteria(Student.class);
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.groupProperty("studentId"));
    projectionList.add(Projections.count("studentId"), "count");
    criteria.setProjection(projectionList);
    criteria.addOrder(Order.desc(("count")));
    return criteria.list();
    

    【讨论】:

      猜你喜欢
      • 2012-09-06
      • 2011-04-11
      • 1970-01-01
      • 2011-10-12
      • 2013-05-19
      • 2013-05-31
      • 2015-07-17
      • 2012-11-26
      • 2020-09-05
      相关资源
      最近更新 更多