有没有可能有这样的东西? 客户端代码在带有伪代码的线程中:
transaction.begin();
ejb.method();
transaction.commit();
method()
属于 EJB3 无状态 session bean,用 TransactionAttributeType.REQUIRED
注释。
method()
可以设置setRollbackOnly()
。
如果 ejb 方法设置了 setRollbackOnly(),在尝试提交事务之前是否应该进行一些检查?
谢谢!
最佳答案
您还可以将被调用的 bean(方法)上的事务属性设置为 TransactionAttributeType.REQUIRES_NEW
,以在您的方法上强制执行新事务。
顺便说一句:如果您在方法 上指定事务属性,请确保调用代理 方法。 也就是说,从 same ejb 中调用具有特定事务属性集的 ejb 的方法将不会像您期望的那样工作...
关于java - 带有 CMT 的 Ejb3 无状态 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5042447/