我无法找到有关此主题的更多信息。有人可以解释一下 Hibernate session.getTransaction().begin(
)与session.beginTransaction()
vs session.beginTransaction().begin()
之间的差异
答案 0 :(得分:9)
调用session.getTransaction().begin()
并没有多大意义,因为session.getTransaction()
将检索已在进行中的事务,因为它假定事务正在进行中。你基本上是在说,开始这个应该已经在进行的交易。
session.beginTransaction()
将在未出现的情况下开始新的交易,或者它将使用现有的交易来开始指定的工作单元。
session.beginTransaction().begin()
== session.beginTransaction()
有关详细信息,建议您查看适用于您的Hibernate版本的Hibernate documentation。如果你没有使用TransactionManager
或者你正在使用JDBCTemplate
,那么你应该只处理低级别的Hibernate,所以要考虑一下,因为以这种方式搞乱交易会很快变得混乱。 / p>