`

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
1
分享到:
评论
2 楼 liuxuejin 2011-01-26  
楼主说的很含糊啊!
1 楼 rmn190 2010-09-07  
1, 这三个方法实现中,对缓存的支持情况怎样?

相关推荐

    day37 04-Hibernate二级缓存:list和iterate方法比较

    今天我们将探讨的是Hibernate的二级缓存,特别是`list`和`iterate`方法的区别,这对于优化数据库访问性能至关重要。 一级缓存是Hibernate内置的,它是Session级别的缓存,自动管理实体对象的生命周期。然而,一级...

    struts 标签 logic:iterate使用 logic:iterate

    在`struts`的标签库中,`logic:iterate`是一个非常重要的标签,用于遍历集合对象,如`List`、`Map`或数组,并对每个元素执行循环操作。 `logic:iterate`标签的主要属性包括: 1. `id`: 用于给循环中的当前元素创建...

    HIBERNATE_QUERY

    ### HIBERNATE_QUERY知识点详解 #### 一、概述 Hibernate作为一款强大的对象关系映射(ORM)框架,为Java开发者提供了一套高效且简洁的方式来处理数据库操作。它支持多种查询方式,包括面向对象的查询语言(HQL)...

    jsp脚本和标签:实现循环和分支逻辑

    jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     17.1.9 检索单个对象(uniqueResult()方法)  17.1.10 按主键逐个处理查询结果(iterate()方法)  17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件...

    Hibernate教程24_Hibernate的补充_list与iterator

    文章作者通过实际代码示例展示了在Hibernate中如何使用`list()`和`iterator()`方法获取并遍历查询结果。源码是配合文章内容的实践案例,帮助读者更好地理解和应用这些概念。 【标签】"Hibernate" Hibernate是Java...

    logic:iterate 是什么,怎么用

    `logic:iterate` 是 Struts 标签库中的一个重要组成部分,主要用于在 JSP 页面中循环遍历集合对象(如 List、Array 或 Map 等)。它能够有效地帮助开发者在前端展示动态数据,尤其适用于需要在页面上显示列表或集合...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     17.1.9 检索单个对象(uniqueResult()方法)  17.1.10 按主键逐个处理查询结果(iterate()方法)  17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     17.1.9 检索单个对象(uniqueResult()方法)  17.1.10 按主键逐个处理查询结果(iterate()方法)  17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件...

    ibatis中iterate的例子

    在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     17.1.9 检索单个对象(uniqueResult()方法)  17.1.10 按主键逐个处理查询结果(iterate()方法)  17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件...

    hibernate操作数据库笔记

    //该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...

    Hibernate方法总结

    这两个方法都用于执行HQL(Hibernate Query Language)查询。`find`返回一个List集合,一次性将所有结果加载到内存,适合于小规模数据的查询。而`iterate`返回一个迭代器,每次调用`next()`方法时才从数据库中获取一...

    struts+hibernate查询所有记录

    4. **Session Factory** 和 **Session**:Hibernate中,`SessionFactory` 是创建 `Session` 的工厂,而 `Session` 是与数据库交互的基本单元。 #### 四、具体实现步骤 1. **配置Hibernate** - 创建Hibernate配置...

    hibernate语句大全

    Hibernate是一个开源的对象关系映射(ORM)框架,它能够将Java对象映射到数据库表中,并管理这些对象的生命周期。本篇文章主要介绍初学者在学习Hibernate时会遇到的基础语句,通过简单的示例帮助读者快速上手并理解...

    Hibernate核心接口

    Query 对象提供了许多方法来查询持久化对象,例如 list、iterate 等。Query 对象可以根据不同的条件来查询持久化对象。 Hibernate 的核心接口分别是 Configuration、SessionFactory、Session、Transaction 和 Query...

    struts-logic iterate标签学习指南

    Struts-Logic Iterate标签是Apache Struts框架中的一个重要组件,用于在JSP页面中迭代集合对象,如数组、列表或Map。这个标签提供了一种简洁的方式来遍历数据,并且可以与Struts的其他标签(如`bean:write`)配合...

    logic:iterate产生问题的图

    logic:iterate 产生问题的图

    hibernate 二级缓存详解

    关于iterate和list的使用,由于无法确保查询条件的重复性,通常很难保证iterate能充分利用缓存。而且,iterate可能会导致1+N问题,因为即使有缓存,每次迭代时仍需检查数据库是否存在新数据。相比之下,list在某些...

    马士兵hibernate学习笔记(原版)

    - 区别使用`list()`与`iterate()`方法遍历查询结果集。 - 理解一级缓存、二级缓存与查询缓存的区别及使用场景。 - 事务并发处理的最佳实践。 以上知识点覆盖了从入门到进阶的各个方面,为学习Hibernate提供了...

Global site tag (gtag.js) - Google Analytics