java - 事务如何与多个持久性单元一起工作

标签 java jpa jersey

我有一个类有两个这样的持久单元

@Stateless
public class SearchRepository {

    @PersistenceContext(unitName = "XYZ")
    private EntityManager entityManager;

    @PersistenceContext(unitName = "ABC")
    private EntityManager entityManager1;

    @Transactional(value = TxType.REQUIRED)
    public void doSomething(){
        entityManager.persist(someentity);
        entityManager1.remove(someentity);
    }
}

我有这段代码并且工作正常,任何人都可以解释一下如何在这种类型的代码中管理事务。 JPA 如何管理具有多个持久性单元的事务 我无法猜测事务在这里是如何工作的。任何帮助将不胜感激。提前致谢。

最佳答案

@Transactional 绑定(bind)到您的默认 PlatformTransactionManager-Bean - 例如实体管理器。使用 entityManager1 可能会以非事务方式与此 PersistenceContext 交互。

[可以使用属性transactionManager更改@Transactional的默认行为。]

关于java - 事务如何与多个持久性单元一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42805327/

相关文章:

java - 如何通过 Jersey 响应对象同时传输 OutputStream

JavaFX 2 : word wrapping doesn't work in ScrollPane

java - 如何使用 DOM/SAX 或 java 中的任何解析器解析 bcompare xml 报告

java - 使用apache poi修改现有的xlsx表而不丢失样式/格式

java - 如何诊断野蝇10.1下降的原因

java - ManyToMany 关系上的 PostgreSQL 约束违规错误,但应存在外键

java - 具有可选实体过滤功能的 Jersey 在 URI 上没有 SELECT 的情况下停止响应

java - 矩形去掉边

jpa - JPA 的 transient 关键字未按预期工作

java - 使用 Jersey 2 和 Jetty 上传文件