在某些情况下,如果只希望检索出一个对象,可以先调用Query或Criteria接口的setMaxResult(1)方法,把最大检索数目设置为1;
接下来,调用uniqueResult()方法,该方法返回一个Object类型的对象:
如果明确知道查询结果(如where id=1),可以不调用setMaxResult(1)方法;
但是如果查询中有多个对象,但没有调用setMaxResult(1)方法,将会抛出NonUniqueResultException异常:
接下来,调用uniqueResult()方法,该方法返回一个Object类型的对象:
复制内容到剪贴板 程序代码
Customer customer = (Customer)session.createQuery(from Customer c order c.name asc).setMaxResults(1).uniqueResult();
如果明确知道查询结果(如where id=1),可以不调用setMaxResult(1)方法;
但是如果查询中有多个对象,但没有调用setMaxResult(1)方法,将会抛出NonUniqueResultException异常:
复制内容到剪贴板 程序代码
[java] net.sf.hibernate.NoUniqueResultException:query did not return a unique result:99
Tags: 检索