2017-03-15 64 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改變。]

相關問題