2017-03-15 37 views
0

工作我有两个持久性单元,这样的事情如何交易与多个持久化单元

@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如何使用多个持久性单元管理事务我无法猜测事务如何在这里工作。任何帮助都会被启动。提前致谢。

+0

“JPA”确实做“多持久性单元”任何东西。 EntityManager处理单个持久性单元的事务处理能力,这是JPA处理的总和。其他方面在JPA之外处理 –

回答

0

@Transactional绑定到您的默认PlatformTransactionManager -Bean - 例如, entityManager。假设使用entityManager1将以非事务性方式与此PersistenceContext进行交互。

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

相关问题