操作无效:结果集已关闭。 ERRORCODE = -4470,SQLSTATE = null

时间:2013-01-17 09:00:08

标签: java hibernate db2 websphere

我正在使用密钥从表中检索某些数据。 我正在使用hibernate查询来检索数据。

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

[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)

5 个答案:

答案 0 :(得分:3)

您获取了一个在Java中表示为一对多关系的实体作为延迟加载的Collection,并且在您已经关闭了Hibernate会话之后尝试迭代该集合取出物体。您必须急切地获取集合或扩展会话边界以包含迭代代码。

答案 1 :(得分:1)

在数据源自定义属性中使用kodo set resultSetHoldability 1

答案 2 :(得分: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

答案 3 :(得分:0)

如果懒惰/渴望提取策略存在问题,您可能需要使用@OneToMany(fetch=FetchType.EAGER),也许可以阅读Hibernate One To Many Eager Not Pulling in all DataHow to Fetch @OneToMany and @ManyToMany EntitiesA Short Primer On Fetching Strategies

我建议发布几个关于你如何获得数据库和受影响记录的片段。您可能想要使用https://gist.github.com/

答案 4 :(得分:0)

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