【发布时间】:2017-06-05 19:21:15
【问题描述】:
【问题讨论】:
-
图片可以显示图表。但是将您的 cmets 和问题作为文本而不是图片。它几乎不可读,显然无法通过在网站上搜索找到。
【问题讨论】:
如果您必须坚持这种架构,这不是最好的架构,您需要在使用 B DAO 时启动一个新事务。
标记正在执行插入的方法:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void insertB(B b) {
// insert B
}
现在在 A DAO 中将这个添加到插入 A 的方法中:
@Transactional(rollbackFor=Exception.class)
public void insertA(A a) {
// insert A
}
现在,当 B DAO 中发生异常时,该事务将被回滚,然后异常将传播到 A DAO 并使该事务也回滚(除非您将捕获异常,否则将不会回滚)
【讨论】: