2010-03-26 51 views
0

我正在使用JBoss Seam並使用交易進行交易。 我有@Transactional註釋的2個方法。正在執行其他交易時結束交易

@Transactional 
public void method1() 
{ 
    ... 
    entityManager.flush(); 
} 

@Transactional 
public void method2() 
{ 
    ... 
    entityManager.flush(); 
} 

我的問題是,如果方法1和方法2是在同一時間執行和方法1結束交易,那麼不會對任何方法2運行的事務。 我該如何解決這個問題?即使使用手動沖洗,在方法上運行代碼時,我是否可以強制事務始終處於活動狀態?

+0

「同一時間」是什麼意思?你的意思是1個線程正在執行method1,另一個正在執行method2,並且這兩個動作都應該在一個事務中? – 2010-03-26 16:02:09

+0

一個線程在method1上,另一個線程在method2上,如果事務在method1上結束,它應該在method2上正常工作 – 2010-03-26 17:14:04

+0

我明白了。 JBoss支持多線程事務,但我從來沒有親自使用它... – 2010-03-26 19:04:38

回答

0

這是一個有點晚來回答......但它應該做的... :)

我只是刪除從代碼中所有手動刷新,讓接縫採取交易的照顧......它工作如我所願。