0

単一のレコードを返すことが期待される基準を使用しています。基準が値を返し、返されたレコードを取得するにはどうすればよいですか。次のコードを使用していますが、より効率的な方法があるかどうかはわかりません。

この場合、リストのサイズを確認する必要があります。ゼロより大きい場合は、何かが返されたことを意味し、最初のサイズを取得する必要があります。

List<Users> mylist = new ArrayList();

Criteria cre = --------
.......
mylist = (Lists<Users>) cre.list();

if(mylist.size() > 0) {   // cre returned a record

    System.out.println(mylist.get(0).getName());

}else {  //nothing has been returned

    System.out.println("no result is returned");
}
4

2 に答える 2

1

いつでもuniqueResultを使用できます:

Criteria cre = -----
MyObject obj = cre.uniqueResult();
if (obj != null) {
  System.out.println(obj.getName());
} else {
  System.out.println("Nothing found");
}

ただし、一致する結果が複数ある場合は、 aHibernateExceptionがスローされることに注意してください...

于 2013-11-12T02:47:49.977 に答える