2014-09-24 56 views
0

我在我的代碼中使用Java EE容器管理事務。我正在使用註釋@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)作爲我的一種方法。該方法應該更新數據庫對象中的值。但是這種方法有時會失敗,並且事務被容器回滾。如何查找回滾Java EE容器管理事務

有什麼方法可以快速查找容器是否回滾事務嗎?我知道我們可以在數據庫中再次查詢來真正檢查並理解值是否已更改,但我不想再次查詢。我想知道如果我能理解該交易是否已經回滾,我可以通知客戶FAILURE消息。

有關此主題的任何建議,非常感謝。

回答

0

總是回退一個事務的一件事情是一個異常(假設它不是'@ApplicationException(rollback = false)'。在客戶端,你可以捕獲這個異常,並保證每種規格)交易回滾

@Remote //or @Local 
public interface MyBeanInterface { 

void doSomeTransaction(); 
} 

public class MyController { 

    @EJB 
    private MyBeanInterface bean; 

    public void doSomething() { 
    try { 
     bean.doSomeTransaction(); 
    }catch(EJBException ex){ 
    //the exception is always wrapped in an EJBException, unless it is an @ApplicationException 
    //do something with the exception 
    } 
    } 
}