如何检索单个结果并确保返回它



我正在使用一个预期返回单个记录的条件。如何找出条件返回值并检索返回的记录,我正在使用以下代码,但不确定是否有更有效的方法。

在这种情况下,我必须检查列表大小,如果它大于零意味着它返回了一些东西,那么需要检索第一个。

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

Object a = criteria.uniqueResult();就可以了。但是,如果您的条件返回多个值,则会出现异常。

我的建议是criteria.list();.

你可以始终使用 uniqueResult:

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

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

最新更新