【发布时间】:2021-01-24 03:58:01
【问题描述】:
我在事务中有创建表数据的序列,使用如下所示的springboot、java、jpa 和hibernate 序列。使用的数据库是Oracle
- 下订单 - 插入订单 details_table
- 处理付款 - 插入到 payment_info 表中
- 错误消息(信息、警告、错误) - 插入到 error_message 表中
如果发生任何错误(信息、警告、错误),我将在 error_message 表中插入错误消息。
如果在处理请求期间没有发生错误,我的信息和警告消息将保留到 error_message。
但是如果出现错误,我会从代码中抛出一个错误以回滚 transaction,它可以工作,但我的 error_message 也会回滚。
我想回滚 details_table 和 payment_info 但不是 error_message,我希望它们被持久化。
我怎样才能达到同样的效果?
【问题讨论】:
-
使用带有pragma autonomous_transaction 的PL/SQL 过程将数据保存到error_message 表中
-
使用
@Transactional(propagation = Propagation.REQUIRES_NEW)保存error_message方法,docs.spring.io/spring-framework/docs/4.2.x/…
标签: java oracle spring-boot spring-data-jpa spring-transactions