我在EJB3无状态会话Bean中使用CMT。另外,我还创建了自己的具有注释“ @ApplicationException(rollback = true)”的异常。
要回滚事务时是否必须使用“ context.setRollbackOnly()”?
我可以通过在bean的public方法内抛出异常来回滚事务吗?
如果是这样(对Q#2的回答是“是”),我是否必须通过在方法中声明异常来将异常抛出方法之外,或者仅将异常抛出到方法内部并在同一方法中进行处理就足够了。本身?(我不想将异常传播到下一个级别。我只想回滚该异常。)
提前致谢。;)
首先,没有回滚异常,它是事务的回滚。
@ApplicationException(rollback=true)
Context.setRollbackOnly()
RuntimeException
setRollbackOnly
有关更多信息,请查阅免费书籍Mastering EJB。它很好地描述了回滚方案,可以免费下载。