【问题标题】:How can I get one database entry with max value using hibernate criteria如何使用休眠条件获取一个具有最大值的数据库条目
【发布时间】:2015-08-04 23:16:26
【问题描述】:

如果我有一个名为 Person 的类

public class Person{
  private int id;
  private int age;
}

如何获取最大年龄的人对象?

当我使用 criteria.setProjection(Projections.max("age) ) 时,它会返回我的最大年龄,然后我应该找到这个年龄的人的条目。

我可以跳过查找最大年龄吗?并直接获取最大年龄的人。它可能看起来像,

person = criteria.somehow.setProjection().somehow.setMaxResults(1).uniqueResult();

我正在尝试找出执行此操作的方法,因为我担心如果我在 hibernate 中进行两次搜索,会浪费我的性能时间。

【问题讨论】:

标签: java hibernate hibernate-criteria


【解决方案1】:

你能试试下面的代码吗:

Criteria cr = session.createCriteria(Person.class);
cr.setProjection(Projections.projectionList()
        .add(Projections.max("age")));

如果上述方法不起作用,您可以这样做:

 Person p= (Person) session.createCriteria(Person.class)
.addOrder(Order.desc("age"))
.setMaxResults(1)
.uniqueResult();

【讨论】:

    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 2015-05-22
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    相关资源
    最近更新 更多