我正在使用一个预期返回单个记录的条件。如何找出条件返回值并检索返回的记录,我正在使用以下代码,但不确定是否有更有效的方法。
在这种情况下,我必须检查列表大小,如果它大于零意味着它返回了一些东西,那么需要检索第一个。
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
...