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

时间:2013-11-12 02:38:53

标签: hibernate hibernate-mapping

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

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

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

2 个答案:

答案 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 ...