Hibernate session.getTransaction()。begin()vs session.beginTransaction()之间的区别

时间:2014-06-13 01:59:07

标签: java hibernate transactions

我无法找到有关此主题的更多信息。有人可以解释一下 Hibernate session.getTransaction().begin()与session.beginTransaction() vs session.beginTransaction().begin()之间的差异

1 个答案:

答案 0 :(得分:9)

调用session.getTransaction().begin()并没有多大意义,因为session.getTransaction()将检索已在进行中的事务,因为它假定事务正在进行中。你基本上是在说,开始这个应该已经在进行的交易。

session.beginTransaction()将在未出现的情况下开始新的交易,或者它将使用现有的交易来开始指定的工作单元。

session.beginTransaction().begin() == session.beginTransaction()

有关详细信息,建议您查看适用于您的Hibernate版本的Hibernate documentation。如果你没有使用TransactionManager或者你正在使用JDBCTemplate,那么你应该只处理低级别的Hibernate,所以要考虑一下,因为以这种方式搞乱交易会很快变得混乱。 / p>