我正在使用密钥从表中检索某些数据。 我正在使用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)
答案 0 :(得分:3)
您获取了一个在Java中表示为一对多关系的实体作为延迟加载的Collection
,并且在您已经关闭了Hibernate会话之后尝试迭代该集合取出物体。您必须急切地获取集合或扩展会话边界以包含迭代代码。
答案 1 :(得分:1)
在数据源自定义属性中使用kodo set resultSetHoldability
到 1 时
答案 2 :(得分:1)
DB2中的SQL代码-4470有许多最终原因。这是一个简短的清单:
答案 3 :(得分:0)
如果懒惰/渴望提取策略存在问题,您可能需要使用@OneToMany(fetch=FetchType.EAGER)
,也许可以阅读Hibernate One To Many Eager Not Pulling in all Data,How to Fetch @OneToMany and @ManyToMany Entities和A Short Primer On Fetching Strategies。
我建议发布几个关于你如何获得数据库和受影响记录的片段。您可能想要使用https://gist.github.com/。
答案 4 :(得分:0)
我得到相同错误的原因是因为我关闭了db2连接然后尝试读取结果集。请强调db2在读取结果集时必须保持连接状态。