ruw*_*era 30 java transactions rollback java-ee ejb-3.0
我在EJB3无状态会话bean中使用CMT.我也创建了自己的Exception,其注释为"@ApplicationException(rollback = true)".
当我想要回滚事务时,是否必须使用"context.setRollbackOnly()"?
我可以通过在bean中的public方法中抛出异常来回滚事务吗?
如果是这样(Q#2的答案是肯定的)我是否必须通过在方法中声明异常来抛出异常,或者仅仅在方法内抛出异常并在同一方法中处理它就足够了本身?(我不想将异常传播到下一个级别.我只想回滚异常.)
提前致谢.;)
Ste*_*eve 69
首先,没有回滚异常,它是事务的回滚.
@ApplicationException(rollback=true),则不必手动回滚事务.Context.setRollbackOnly()如果没有异常,则强制容器回滚事务.@ApplicationException(rollback=true).如果异常是a RuntimeException并且未捕获异常,则会强制容器回滚事务.但请注意,在这种情况下,容器将丢弃EJB实例.RuntimeException,事务将自动回滚.如果在代码中捕获已检查的异常,则必须使用setRollbackOnly回滚事务.有关更多信息,请查看免费的Mastering EJB一书.它很好地描述了回滚场景,可以免费下载.
| 归档时间: |
|
| 查看次数: |
48224 次 |
| 最近记录: |