【问题标题】:Joining a transaction in Hibernate在 Hibernate 中加入事务
【发布时间】:2017-03-20 05:49:43
【问题描述】:

我正在将代码从 EJB 迁移到 Spring-Hibernate。如果发生故障,如何加入事务并回滚? 下面是 EJB 中的代码:

entityManager.joinTransaction();
entityManager.persist(xyz);
entityManager.flush();

更新 1: 我们如何加入发生在不同数据库上的两个事务? 有 2 个事务需要以原子方式执行。如果第二个事务失败,则必须回滚第一个事务。如何实现?

【问题讨论】:

    标签: spring hibernate ejb


    【解决方案1】:

    entityManager.joinTransaction(); 的目的是通知持久化上下文与当前事务同步(reference

    由于代码正在迁移到 Spring,请考虑利用 @Transactional 提供的开箱即用事务抽象。这将使对joinTransaction() 的调用变得多余,并且回滚/提交将由 Spring 处理。

    注意 - 确保选择适当的 transaction settings 以便与当前实现内联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      相关资源
      最近更新 更多