方案2在..Propagation Require_New ..是我用过的。如果在父方法期间发生任何运行时异常,我在try catch中处理了该异常并恢复了作为新事务的一部分在DB中更新的锁,并在catch块中抛出了相同的异常,以便父事务被恢复太。
如果您有多个dB状态要单独还原,这种方法将很困难,但现在就足够了