Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA应用程序中的连接何时返回到连接池?_Java_Jpa_Database Connection_Connection Pooling_Entitymanager - Fatal编程技术网

Java JPA应用程序中的连接何时返回到连接池?

Java JPA应用程序中的连接何时返回到连接池?,java,jpa,database-connection,connection-pooling,entitymanager,Java,Jpa,Database Connection,Connection Pooling,Entitymanager,在JPA应用程序中,如果我调用 entityManager.close(); ? 支持entitymanger的连接能否在其生命周期内更改 提前谢谢 mojooJPA规范没有定义这些东西,管理连接取决于实现。当事务处于活动状态时,出于明显的原因,您可以安全地假定连接在提交之前是相同的。txn结束后,它可能会被退回,也可能会被保留,具体取决于实现(您不必提及您的实现)这取决于JPA实现和配置 在EclipseLink中,默认情况下,连接仅在活动(脏)事务期间保持。i、 e.从第一次修改或锁定,直

在JPA应用程序中,如果我调用

entityManager.close();
?

支持entitymanger的连接能否在其生命周期内更改

提前谢谢
mojoo

JPA规范没有定义这些东西,管理连接取决于实现。当事务处于活动状态时,出于明显的原因,您可以安全地假定连接在提交之前是相同的。txn结束后,它可能会被退回,也可能会被保留,具体取决于实现(您不必提及您的实现)

这取决于JPA实现和配置

在EclipseLink中,默认情况下,连接仅在活动(脏)事务期间保持。i、 e.从第一次修改或锁定,直到提交或回滚。对于非事务性查询,将按需获取连接,并在查询执行后返回。这允许最大限度地使用连接池。因此,通常em.close()什么也不做

您可以使用“eclipselink.jdbc.exclusive connection.mode”持久化单元属性来配置它。“始终”将在EntityManager的生命周期中保持连接


您还可以为事务使用不同的连接池,而不是非事务性读取。这对JTA很有用,因为您可以使用非JTA数据源进行读取。

我发现了关于Hibernate连接释放策略的描述: