[英]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.