内側で例外、外側でcommitしたい場合。

[spring]10.5 Declarative transaction management
https://minokuba.hatenablog.com/entry/20110501/1304265347


内側で例外(rollbackしか出来ない状態)、外側で握ってcommitしたい場合。
TransactionStatus transactionStatus = TransactionAspectSupport.currentTransactionStatus();
if(transactionStatus.isRollbackOnly() && !transactionStatus.isCompleted()){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}