我使用的标准预计将返回单个记录。如何找出条件返回值并检索返回的记录,我使用以下代码但不确定是否有更有效的方法。
在这种情况下,我必须检查列表大小,如果它大于零意味着它返回了一些东西,那么需要检索第一个。
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");
}
答案 0 :(得分:2)
Object a = criteria.uniqueResult();
会奏效。但是,如果您的条件返回多个值,那么您将获得Exception。
我的推荐是criteria.list();
。
答案 1 :(得分:1)
您可以随时使用uniqueResult:
Criteria cre = -----
MyObject obj = cre.uniqueResult();
if (obj != null) {
System.out.println(obj.getName());
} else {
System.out.println("Nothing found");
}
请注意,如果有多个匹配结果,则会引发HibernateException
...