2011-10-26 29 views
2

があるとき、私は私が変更カントの規準で検索名前や作成日とテーブルUSERS、およびAPI関数Criteria.uniqueResult()いくつかの結果

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; 
} 

答えて

4

たぶん、あなたはトップの結果、あなたは、返される結果の数を渡しList<T>と1を返すメソッドを返さreadメソッドを持つことができます。あなたは `addOrderを()`を忘れないでください

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

+4

を設定し、最大の結果を使用して、次に使用することができます例えば

。 – axtavt

+0

はい、結果は日付順に並べる必要があります(降順) –

+0

infastructure read(Criterion ... criteria)関数を使用する必要があるため、基準のみで作業することができます。関数 –

関連する問題