簡體   English   中英

有多個結果時使用休眠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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM