在 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()