2013-01-17 68 views
2

我正在使用密钥从表中检索某些数据。 我正在使用hibernate查询来检索数据。操作无效:结果集关闭。 ERRORCODE = -4470,SQLSTATE = null

我能够检索特定键的数据。但对于其他一些键我收到错误或例外。我得到的例外是

 
[1/17/13 14:07:41:819 IST] 0000004c LongType  I **org.hibernate.type.NullableType nullSafeGet could not read column value from result set: BRAND1_23_2_; [jcc][t4][10120][10898][3.58.81] Invalid operation: result set is closed. ERRORCODE=-4470, SQLSTATE=null** 
[1/17/13 14:07:41:822 IST] 0000004c JDBCException W org.hibernate.util.JDBCExceptionReporter logExceptions SQL Error: -4470, SQLState: null 
[1/17/13 14:07:41:823 IST] 0000004c JDBCException E org.hibernate.util.JDBCExceptionReporter logExceptions [jcc][t4][10120][10898][3.58.81] Invalid operation: result set is closed. ERRORCODE=-4470, SQLSTATE=null 
[1/17/13 14:07:41:826 IST] 0000004c DefaultLoadEv I org.hibernate.event.def.DefaultLoadEventListener onLoad Error performing load command 
           org.hibernate.exception.GenericJDBCException: could not load an entity: [com.travelport.soa.gds.airline.brandedfares.entity.FareCollection#490] 
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 
+1

后一些代码,通过它你想这 – TheWhiteRabbit

回答

2

您获取的是有在Java中表示为一个一对多关系的实体延迟加载Collection和您正试图遍历该集合您已经关闭后Hibernate会话,您已经在其中获取对象。您必须急切地获取集合或扩大会话边界以包含迭代代码。

+0

实际上这个会议的闭幕发生在哪里?无论如何,我不处理显式关闭/启动会话.. ?? – saagaravk

+0

如果您使用某种声明式事务管理,则必须了解框架为您提供的事务范围。我想最好的选择将是热切地收集集合。 –

+0

确实。可能是最常发生的错误,因此是(完全不必要的)急切加载的最常见原因。而这一切都源于未能理解Hibernate最基本和最基本的两个概念:持久集合和会话生命周期边界。 – pap

1

使用时,科多兽在数据源的自定义属性设置resultSetHoldability

0

,我得到了同样的错误,是因为我关闭了DB2连接,然后试图读取结果集的原因。请强调,在读取结果集时,db2必须保持连接状态。

+0

是的,我改变了resultSetHoldability属性为1,所以它工作正常。但是,我可以知道什么是关于resultSetHoldability属性? – saagaravk

1

DB2中有很多SQL代码-4470的最终原因。这里是一个简短的清单:

  1. 程序错误(如在这种情况下),关闭游标之前已经 得到了充分的阅读。
  2. 错误在已安装的JDBC驱动程序: https://issues.jboss.org/browse/JBPAPP-2408
  3. 使用不当司机由于不正确的文件: http://www-01.ibm.com/support/docview.wss?uid=swg1IV45140
  4. 错误在DB2服务器: https://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.5.0/com.ibm.db2.luw.admin.trb.doc/doc/c0020806.html
相关问题