在 Hibernate 中加入事务

Joining a transaction in Hibernate

我正在将代码从 EJB 迁移到 Spring-Hibernate。如果失败如何加入事务和回滚? 下面是 EJB 中的代码:

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

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

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

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

注意 - 确保正确选择 transaction settings 以便与当前实施内联。