![](/img/trans.png)
[英]org.hibernate.AssertionFailure during criteria.uniqueResult
[英]using hibernate Criteria.uniqueResult() when there are several results
我有一個具有名稱和創建日期的表USERS,以及一個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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.