我正在尝试从最高年龄+名称
的表中获取记录 Criteria criteria = session
.createCriteria(Person.class)
.setProjection(Projections.max("age"));
Integer maxAge = (Integer)criteria.uniqueResult();
以上代码给出了整个表格中的最高年龄,而我想要获得最高年龄,只有人名=“john”
我怎样才能实现这一目标?
我试图以这种方式添加一个critera
Criteria critNew = session
.createCriteria(Person.class);
critNew.add(Restrictions.eq("personName","john"));
critNew.add(Restrictions.eq("age", maxAge));
但是这样只会搜索john,其中maxAge是“整个表中的最高年龄”
例如,如果整个表中的maxAge是50。 并且有3个人名为“john”,年龄为“10”,“20”,“30” 我的代码不起作用
请建议 谢谢
答案 0 :(得分:1)
只需将它们组合成一个标准。
Criteria criteria = session
.createCriteria(Person.class)
.add( Restrictions.eq("name", "john"))
.setProjection(Projections.max("age"));
Integer maxAge = (Integer)criteria.uniqueResult();