我刚刚阅读了《精通EJB 3.0》的事务章节(第10章),现在我对于嵌套事务感到困惑。
这本书中说:
"EJB定义的事务管理器不支持嵌套事务;它只支持扁平事务。"(第278页,注)
不仅这本书这样描述,我还在其他书籍/网站上找到了类似的说法。
但如果我从一个“Required”注释的方法中调用一个“Requires New”注释的方法,那么我拥有的就是一个嵌套事务,是吗?我可以回滚内部事务或提交它,而不影响外部事务。 如果我希望终止外部事务,我抛出一个EJBException,并且整个事务将被回滚。
所以,这只是EJB 3.0规范中没有要求这种行为,还是我误解了什么?我就是弄不清楚嵌套事务和所描述的行为之间的区别。
问候 诺曼