我已经对Hibernate做了一些研究:
持久性会话使它们的生命周期在某种程度上与JDBC连接无关。当您关闭Hibernate时Session
,连接被 释放 。 “释放连接”的 确切含义取决于首先获得连接的方式:
Hibernate不会自动进行会话刷新或事务提交/回滚。JPA的状态相同EntityManager
。
因此,最终会发生什么情况取决于您的连接提供者/数据源。使用C3PO,将连接返回到池时,任何未完成的事务都会回滚。另一方面,如果您已经管理了JTA连接,则实际的事务处理可能完全超出了应用程序的范围。