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

2

Object a = criteria.uniqueResult();将工作。但是,如果您的条件返回多个值,那么您会得到异常。

我的建议是criteria.list();

于 2013-11-12T02:55:21.067 回答
1

你总是可以使用uniqueResult

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

请注意,如果有多个匹配结果,HibernateException则会抛出 a...

于 2013-11-12T02:47:49.977 回答