问题是关于在crudrepository,jparepository ext中使用多个事务。
在我的项目中,有两个实体。 RequestEntitySendingMailEntity
我的方法中的WorkFlow:

1)保存RequestEntity

2)发送informationService(这是我们购买的一种REST服务。我们无法控制其任何异常。)

3)保存SendingMailEntity

当数字2或3发生异常时,由于受spring jpa控制的回滚,我们丢失了requestEntity

requestEntity的记录永远不会丢失。

如何控制此问题?如何在Spring数据中进行两次独立交易?

感谢帮助。

最佳答案

您需要在服务中创建一个专门用于管理/保存requestEntity的方法,并对其进行适当注释,以便暂停当前事务,并且此代码在新事务中运行,并在退出该方法时提交:

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void processRequestEntity(...){
    // jpa repo actions
}

10-04 23:05