Hibernate 使用附加条件休眠表中的max记录

Hibernate 使用附加条件休眠表中的max记录,hibernate,Hibernate,我正在尝试从表中获取记录,该表的最大年龄+名称 Criteria criteria = session .createCriteria(Person.class) .setProjection(Projections.max("age")); Integer maxAge = (Integer)criteria.uniqueResult(); 上面的代码给出了整个表中的最高年龄,而我只想在person name=“john”处获得最高年龄 我怎样才能做到这一点 我试着用这种方式添加一

我正在尝试从表中获取记录,该表的最大年龄+名称

  Criteria criteria = session
 .createCriteria(Person.class)
 .setProjection(Projections.max("age"));
 Integer maxAge = (Integer)criteria.uniqueResult();
上面的代码给出了整个表中的最高年龄,而我只想在person name=“john”处获得最高年龄

我怎样才能做到这一点

我试着用这种方式添加一个critera

 Criteria critNew = session
 .createCriteria(Person.class);
 critNew.add(Restrictions.eq("personName","john"));
 critNew.add(Restrictions.eq("age", maxAge));
但用这种方法,它只会搜索maxAge是“整个表中最高年龄”的john

例如,如果整个表中的maxAge为50。 还有3个人叫约翰,年龄分别是10岁、20岁、30岁 我的代码不起作用

请建议
谢谢

只要把它们放在一个标准里就行了

Criteria criteria = session
   .createCriteria(Person.class)
   .add( Restrictions.eq("name", "john"))
   .setProjection(Projections.max("age"));

Integer maxAge = (Integer)criteria.uniqueResult();

谢谢,但是用这种方法,结果会很好,但是我的条件返回一个整数(最高的数字)。当我尝试将其放入列表时,即list=criteria.list();list=46(最高的数字),其中我正在寻找完整的Person类,有什么想法吗..更改最后一行
list maxages=(list)criteria.list()