簡體   English   中英

如何使用休眠條件獲取一個具有最大值的數據庫條目

[英]How can I get one database entry with max value using hibernate criteria

如果我有一個叫做Person的班級

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

如何獲得最大年齡的人對象?

當我使用criteria.setProjection(Projections.max(“ age))時,它將返回我的最大年齡,然后我應該找到具有該年齡的人的條目。

我可以跳過找到最大年齡嗎? 並直接找最大年齡的人。 看起來像

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

我正在嘗試找出執行此操作的方法,因為我擔心在休眠狀態下進行兩次搜索會浪費我的性能。

您可以嘗試以下代碼:

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM