Hibernate:Query中list、iterate跟uniqueResult三个方法的区别

Hibernate:Query中list、iterate和uniqueResult三个方法的区别

想看下org.hibernate.Query接口中定义的三个方法(list、iterate和uniqueResult)有什么区别。 

通过追踪地看一相关源码后,发现情况是这样的。

简单说来,它们的特点是这样的:
    1,list方法是把所有满足条件的结果集都解析转换成Model对象,再把这些对象放到List实例中。
    2,iterate调用了ResultSet的next方法,按需要地一个一个地解析转换成model类。
    3,uniqueResult,没啥说的,它实质上是list()方法,只不过是在外面再用uniqueElement处理了下。注意,这个方法如果拿回的List中不只是含有一个Model对象的话,会抛出NonUniqueResultException异常。

1 楼 rmn190 2010-09-07  
1, 这三个方法实现中,对缓存的支持情况怎样?
2 楼 liuxuejin 2011-01-26  
楼主说的很含糊啊!