在 weblogic中只支持兩種事務:容器管理的事務和 bean管理的事務。
在默認情況下 ejb使用的都是容器管理的事務 ,容器管理的事務是自動開始的。
那在容器管理的事務的ejb中,怎麼回滾事務呢?
應該使用
EJBContext.setRollbackOnly. 那如何得到EJBContext呢? 是通過註解:
@Resource
EJBContext context;
然後如果想回滾,就使用 context.setRollbackOnly()就可以了。
如果要使用bean管理的事務 ,你的ejb必須在類上做這樣的註解:
@TransactionManagement(BEAN)
然後必須 得到一個 UserTransaction的引用,同樣也是通過註解得到:
@Resource
UserTransaction ut;
在這種情況下,必須手動調用 ut.begin(),提交使用 ut.commit(),回滾使用
ut.rollback()