`
linfc
  • 浏览: 5264 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

求助:关于Hibernate中Query.iterator()方法的使用

阅读更多
最近在学习Hibernate,碰到一个很奇怪的问题,研究了半天也没搞清楚怎么回事。
我在使用Query查询的时候,如果使用Query.list()返回一个List类型,程序没什么错误
,但是使用Query.iterator()返回一个Iterator类型,程序报错:could not get next iterator result。具体的代码是:
Query queryObject = getSession().createQuery("from Teacher");
queryObject.setCacheable(true);
//List list = queryObject.list();//返回正确
return queryObject.iterate();//程序报错
给解决一下吧。
分享到:
评论
11 楼 linfc 2006-09-24  
其实这里的用法没什么错误,是配置文件的问题,jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=school;SelectMethod=cursor,我原来没有使用SelectMethod=cursor,才导致整个问题,真有意思。
10 楼 抛出异常的爱 2006-09-22  
1必是由于session脱管了
2iterator没用了。。。。。
我在我的测试用例中可以使用
你写的例子
我的session 没的脱管
9 楼 linfc 2006-09-22  
首先Session没有关闭
其次,如果把Iterator再转成List,它本身的作用还存在吗?
8 楼 抛出异常的爱 2006-09-22  
1不要在关了session之后再用
2如果要用可以先变成java.util.list再用。。
7 楼 linfc 2006-09-22  
有什么好的解决方法吗?或者说正确的使用方法。
6 楼 zhanggok 2006-09-21  
query.iterate(),则是首先通过一条Select SQL 获取所有符合查询条件的记录的 id,再对这个id 集合进行循环操作,通过单独的Select SQL 取出每个id 所对应的记 录,可能是session关闭就不能Iterator
5 楼 抛出异常的爱 2006-09-21  
可能是你的DAO沒有交由HibernateTransactionManager來管理的原因

当然你可以试试看看
http://developer.spikesource.com/spikewatch.logs/fedora-3-i386/2083/hibernate/reports/clover/org/hibernate/impl/IteratorImpl.html
4 楼 linfc 2006-09-21  
我又看了一遍事务与并发,但是还是不能找出问题所在,给个详细的介绍,可以吗?谢谢
3 楼 zhanggok 2006-09-21  
哈哈,说错了。建议看文档的第12章 事务和并发
2 楼 galaxystar 2006-09-21  
如果list.size() == 0,转成iterate()应该没问题啊!
异常只会在没调用hasNext()时,调用next()才会报!
1 楼 zhanggok 2006-09-21  
could not get next iterator result。也就是list.size()==0

相关推荐

    面向对象程序设计英文教学课件:14_Design Iterator.ppt

    在本教学课件“14_Design Iterator”中,主要探讨的是如何在C++中利用标准模板库(Standard Template Library,STL)中的迭代器(Iterator)来处理对象集合。 STL是C++中一个强大的工具库,它提供了多种容器(如...

    java-util-iterator.pdf java-util-iterator.pdf

    此外,`Collection`接口还提供了一个非常重要的方法——`iterator()`,该方法返回一个`Iterator`对象,用于遍历集合中的元素。 ### 二、Iterator接口的实现原理 #### 1. Iterator接口简介 `java.util.Iterator`...

    Hibernate教程24_Hibernate的补充_list与iterator

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

    hibernate批量删除.txt

    5. **结合使用**:实际应用中可以根据具体情况选择合适的批量删除策略,或者将多种策略结合起来使用,以达到最佳的性能效果。 #### 四、总结 通过上述介绍,我们可以了解到使用Hibernate进行批量删除操作不仅可以...

    Hibernate框架.pdf

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来操作数据库,从而简化了Java应用程序中的数据存取工作。在Java开发中,Hibernate 提供了一个强大而灵活的数据访问层,使得...

    Hibernate几种获数据方法比较

    本文将深入探讨Hibernate中的几种主要的数据获取方式,包括`Session.get()`与`Session.load()`、`Query.iterator()`与`Query.list()`以及使用HQL(Hibernate Query Language)进行查询。 ### 1. `Session.get()`与`...

    CUJ:标准库:定义iterator和const iterator.docx

    在C++编程中,迭代器(iterator)是一种设计模式,用于抽象地访问序列中的元素,类似于指针,但提供了更高级别的抽象。迭代器允许程序员以统一的方式遍历不同的数据结构,如数组、向量、链表等。在C++标准库中,迭代...

    F_Java源码分析:深入探讨Iterator模式.doc

    F_Java源码分析:深入探讨Iterator模式

    HIBERNATE_QUERY

    ### HIBERNATE_QUERY知识点详解 #### 一、概述 Hibernate作为一款强大的对象关系映射...以上就是关于Hibernate查询机制的相关知识点介绍,通过这些方法和技术,开发者可以根据具体的应用需求选择最合适的查询方式。

    myword改进后的 无问题版本

    经过这个周的纠结 成功的将其改成功了 比原著改的地方是在 mysetting.h 的48行Manager::iterator it = settingManager.find(userName); 改为typename Manager::iterator it = settingManager.find(userName); 还有75...

    优化Hibernate性能的几点建议

    这是因为`Iterator`在每次调用`next()`方法时只会加载当前的记录,而不会一次性加载所有的结果到内存中。这种方式特别适用于需要分批处理大数据量的情况。 #### 五、合理管理实体之间的关联关系 在设计模型时,...

    java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器

    java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器

    java.util.ConcurrentModificationException 解决方法

    在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除。 则使用会报以下异常: Java.util.ConcurrentModificationException at java.util.HashMap$...

    22 迭代器模式:银行的点钞机.pdf

    在JavaScript中,我们可以轻松地使用内置的`forEach`方法来遍历数组,这就是迭代器的一种体现。但在早期版本的JavaScript(如IE9之前),我们需要使用`for`循环自行实现迭代。 例如,jQuery库中的`$.each`函数就是...

    Java语言程序设计:第八章 容器.ppt

    为了遍历Collection中的元素,Java引入了Iterator接口,提供hasNext()、next()和remove()方法,支持单向前进的元素访问。 2. Iterator接口:迭代器是访问Collection元素的主要方式,它允许程序员遍历容器而无需暴露...

    hibernate性能优化.doc

    在使用Hibernate进行数据库操作时,性能优化是至关重要的,特别是在处理大数据量的系统中。以下是一些关于Hibernate性能优化的关键点: 1. **数据库优化**: - **硬件优化**:磁盘I/O是数据库性能的关键,选择高...

    JBuider第七章:Java.util包.rar

    本教程重点讲解了Java.util包中的主要组件和使用方法,旨在帮助初学者深入理解并熟练运用这个包。 1. **集合框架**: Java.util包是Java集合框架的基础,包括List、Set、Queue等接口以及ArrayList、LinkedList、...

    1、hibernate 简单语法1

    Hibernate 提供了多种方式来处理结果集,例如使用 `list()` 方法获取整个结果集,或者使用 `Iterator` 迭代器来逐个处理结果集。例如: ```java Query query = session.createQuery("from Student"); List<Student> ...

    java.util.ConcurrentModificationException 异常问题详解1

    在实际开发中,我们可以使用 ListIterator 或者其他方法来避免这个异常,例如使用 CopyOnWriteArrayList 替代 ArrayList,或者使用 synchronized 块来同步遍历和修改集合的操作。 ConcurrentModificationException ...

Global site tag (gtag.js) - Google Analytics