只要没有错误就更新/插入DB(@Transactional(propagation = Propagation.REQUIRED))

时间:2015-07-22 12:15:51

标签: java hibernate transactions

我有一个可以调用6个服务的Business类。根据每时每刻的待遇,都会调用不同的服务。

理论上,每次调用业务类时,它都会调用这6个服务。

我希望只有在这6个服务中没有错误的情况下,同时完成的更新才会被提交到数据库中。

如果有错误,则不必对数据库进行提交。

理论上我已计划将此应用于调用6个服务和6个被调用服务的Business类:

@Transactional(propagation = Propagation.REQUIRED)

这样可以吗?你会以不同的方式吗?

谢谢

1 个答案:

答案 0 :(得分:0)

这听起来和你想做的完全一样。

假设出现问题时,6个服务中的每个服务都会抛出异常。

您可以通过将断点放入6个服务中来测试,然后检查调试器的堆栈跟踪以获取事务建议,并检查所有6个服务是否使用相同的事务对象(它们应该)。如果您随后在其中一个服务中触发了异常,则应将该事务标记为回滚。