当使用Hibernate / JPA和c3p0时,如果正在保存多个PO,即如果记录被插入到多个表中,在同一个数据库中,在一个(EntityManager)事务中,将休眠使用多个连接来执行此操作或仅使用任何一个连接(来自连接池)?
答案 0 :(得分:1)
一个事务(例如由begin()
启动并由commit()
javax.persistence.EntityTransaction
提交的事务)与资源池中的相同连接相关联。
例如,在JdbcTransaction
中,begin()
会将从池中检索到的连接存储到名为managedConnection
的私有变量中。当您致电commit()
时,它会从此commit
调用managedConnection
。如果此变量在您调用begin()
时已与关联相关联,则会引发TransactionException
。