簡體   English   中英

如何查找Java EE容器管理的事務的回滾

[英]How to find roll back of a Java EE Container-Managed Transactions

我在代碼中使用Java EE容器管理的事務。 我將注解@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)用於我的一種方法。 應該使用此方法來更新數據庫對象中的值。 但是這種方法有時會失敗,並且事務會被容器回滾。

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

對此主題的任何建議都將受到高度贊賞。

總是回滾事務的一件事是一個異常(假設它不是“ @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
   }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM