【发布时间】:2016-08-10 23:35:55
【问题描述】:
在服务层,我有一些带有事务注释的方法。
@Transactional
public void process() throws ProcessPaymentException{
try{
.... do some operation
catch (ProcessPaymentException ppe) {
save db problem issue.
}
}
似乎如果有问题,有回滚......并且没有任何东西保存在数据库中......
ProcessPaymentException 扩展异常
有没有办法在 try 中回滚进程但在 catch 中保存?
编辑
如果此链接正常,嵌套事务可能是一种解决方案 https://www.credera.com/blog/technology-insights/java/common-oversights-utilizing-nested-transactions-spring/
【问题讨论】:
-
你应该覆盖默认的回滚实现。 @Transactional 有一个名为 rollbackfor 的属性,您可以尝试在那里实现一个新属性。另一个选项应该是方面,实现异常方面。
标签: spring spring-data-jpa mariadb spring-transactions