[hibernate-dev] Prepared statement for EAGER entity relations returning cursor not closed

Levan Tsinadze levantsinadze at gmail.com
Tue Jan 21 18:54:59 EST 2014


Hello everybody

I found that after migrating from 4.2.8.Final to 4.3.0.Final, if I have
several @OneToMany EAGER entity relations and select at least 500 rows I
get ORA-01000: maximum open cursors exceeded JDBC exception for Oracle
database (ojdbc 12.1.0.1)

I think problem is in
org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad
method which calls  (line 156, column
106) org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.release(ResultSet
resultSet, Statement statement) method and this last method closes only
passed ResultSet, not Statement.

I also found that in 4.2.7.SP1 in such case is
called org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.release(Statement
statement) which closes as ResultSet as passed Statement.

Sincerely,

Levan Tsinadze


More information about the hibernate-dev mailing list