我有一个Java SE 1.7独立应用程序。
它使用Hibernate 4.3 final和JPA 2.1从db2 zos数据库中检索数千行。
我有一个多表来检索相关的行。
我当前正在测试的是检索父表行然后检索两个相关的子表行。 一个子表具有一对一关系,另一个具有一对多关系。
我可以从主父表中检索2000多行确定,我将这些行保存在ArrayList
然后我尝试使用我的数组列表中保存的ID来检索子表行。
这是我生成以下异常时: -
***** Out of Package Error Occurred (2015-01-14 15:55:29.935) *****
Concurrently open statements:
1. SQL string: SELECT .....
Number of statements: 1150
********************
我的JPA实体类不之间有任何映射,例如@ManyTo
或@OneTo
继承我的persistence.xml文件
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="persistence" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>table.class.One</class>
<class>table.class.Two</class>
<class>table.class.Three</class>
<properties>
<!-- Configuring JDBC properties -->
<property name="javax.persistence.jdbc.url"
value="jdbc:db2://host:port/LOCATION:retrieveMessagesFromServerOnGetMessage=true;emulateParameterMetaDataForZCalls=1;" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="pword" />
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="hibernate.default_schema" value="schema" />
<property name="hibernate.connection.autocommit" value="false" />
<!-- Hibernate properties -->
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.format_sql" value="false" />
<property name="hibernate.dialect" value="org.hibernate.dialect.DB2390Dialect" />
<property name="hibernate.connection.provider_class"
value="org.hibernate.connection.C3P0ConnectionProvider" />
<!-- Configuring Connection Pool -->
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="20" />
<property name="hibernate.c3p0.timeout" value="500" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.maxStatementsPerConnection"
value="10" />
<property name="hibernate.c3p0.idle_test_period" value="2000" />
<property name="hibernate.c3p0.testConnectionOnCheckout"
value="true" />
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces"
value="true" />
</properties>
</persistence-unit>
</persistence>
如何让JPA和/或hibernate“关闭”开放语句?