【发布时间】:2014-08-03 11:57:22
【问题描述】:
我找不到关于这个主题的太多信息。谁能解释一下Hibernate session.getTransaction().begin() vs session.beginTransaction() vs session.beginTransaction().begin()
【问题讨论】:
标签: java hibernate transactions
我找不到关于这个主题的太多信息。谁能解释一下Hibernate session.getTransaction().begin() vs session.beginTransaction() vs session.beginTransaction().begin()
【问题讨论】:
标签: java hibernate transactions
调用session.getTransaction().begin() 没有多大意义,因为session.getTransaction() 将检索已经在进行的事务,因为它假定事务正在进行中。你基本上是在说,开始这个应该已经在进行中的事务。
session.beginTransaction() 将开始一个新事务(如果不存在),或者它将使用现有事务来开始指定的工作单元。
session.beginTransaction().begin() == session.beginTransaction()
有关更多信息,我建议您查看您的 Hibernate 版本的 Hibernate documentation。如果您不使用TransactionManager 或者您使用的是JDBCTemplate,那么您应该只像这样处理低级别的Hibernate,所以请考虑一下,因为以这种方式处理事务会很快变得混乱。
【讨论】:
session.getTransaction().begin() 被用于Transaction section of Hibernate User Guide。