(Hibernate/JPA) EntityManager 与 c3p0 一起使用时,是否在同一事务中使用多个连接?
Does (Hibernate/JPA) EntityManager when used with c3p0, use multiple connections within the same transaction?
当将 Hibernate/JPA 与 c3p0 一起使用时,如果正在保存多个 PO,即如果记录被插入到多个表中,在同一个数据库中,在一个 (EntityManager) 事务中,休眠将使用多个连接来做这个还是简单地使用任何一个连接(来自连接池)?
事务(例如由 begin()
启动并由 javax.persistence.EntityTransaction
的 commit()
提交的事务)与资源池中的同一连接相关联。
例如,在 JdbcTransaction
中,begin()
将从池中检索到的连接存储到名为 managedConnection
的私有变量中。当您调用 commit()
时,它会从这个 managedConnection
调用 commit
。如果在您调用 begin()
时此变量已经与连接关联,它将引发 TransactionException
.
当将 Hibernate/JPA 与 c3p0 一起使用时,如果正在保存多个 PO,即如果记录被插入到多个表中,在同一个数据库中,在一个 (EntityManager) 事务中,休眠将使用多个连接来做这个还是简单地使用任何一个连接(来自连接池)?
事务(例如由 begin()
启动并由 javax.persistence.EntityTransaction
的 commit()
提交的事务)与资源池中的同一连接相关联。
例如,在 JdbcTransaction
中,begin()
将从池中检索到的连接存储到名为 managedConnection
的私有变量中。当您调用 commit()
时,它会从这个 managedConnection
调用 commit
。如果在您调用 begin()
时此变量已经与连接关联,它将引发 TransactionException
.