我有一个具有名称和创建日期的表用户,以及一个api函数
T read(Criterion... criteria)
以我无法改变的标准来寻找。
我的问题是,函数返回crit.uniqueresult(),但有时条件会给出许多名称(在这种情况下,我只需要具有最新日期的名称)。
如何添加条件以确保只返回最新的名称?
public T read(Criterion... criteria){
Criteria crit = getSession(false).createCriteria(this.type);
for (Criterion c : criteria)
{
crit.add(c);
}
T entity = (T)crit.uniqueResult();
return entity;
}
最佳答案
也许您可以有一个read方法返回顶部结果,一个返回List<T>
的方法,以及一个传递要返回的结果数的方法。
例如,可以使用“然后使用最大结果”设置
criteria.setMaxResults(1);
List<T> results = criteria.list();
return results.get(0);
http://docs.jboss.org/hibernate/core/3.2/api/org/hibernate/Criteria.html#setMaxResults%28int%29