最高年齢+名前のテーブルからレコードをフェッチしようとしています
Criteria criteria = session
.createCriteria(Person.class)
.setProjection(Projections.max("age"));
Integer maxAge = (Integer)criteria.uniqueResult();
上記のコードは、テーブル全体で最高の年齢を示していますが、人物名= "john"の場合にのみ、最高の年齢を取得したいと考えています。
どうすればこれを達成できますか?
その後、このように基準を追加してみました
Criteria critNew = session
.createCriteria(Person.class);
critNew.add(Restrictions.eq("personName","john"));
critNew.add(Restrictions.eq("age", maxAge));
ただし、この方法では、maxAgeが「テーブル全体で最も高い年齢」であるジョンのみが検索されます。
たとえば、テーブル全体のmaxAgeが50で、年齢が「10」、「20」、「30」の「john」という名前の人が3人いる場合、私のコードは機能しません。
ありがとうを提案してください