Spring数据事务控制



问题是关于在crudrepository jparepository ext.中使用多个事务。在我的项目中,有两个实体。RequestEntity和SendingMailEntity。我的方法中的工作流:

1( 保存请求实体,

2( 发送信息服务(这是我们购买的一项休息服务。我们无法控制它的任何异常。(

3( 保存SendingMailEntity。

当我们在编号2或3上出现异常时,由于spring-jpa控制的回滚,我们丢失了requestEntity。

requestEntity的记录永远不会丢失。

@Transactional
public RequestEntity create(RequestEntity entity) {
entity=requestRepository.save(entity);
sendMail(entity);
}
@Transactional(propagation=Propagation.REQUIRES_NEW)
public SendingMailEntity sendMail(RequestEntity entity) {
/*
*
*/
informationService(entity.*,*,*);
/*
*
*/
sendingMailRepository.save(sendingMailEntity);
}

此代码块不起作用。当sendMail出现错误时,RequestEntity没有保存。

处理sendMail内部的所有异常,不要让它返回到调用函数。

如果单独的异常处理不起的作用,您也可以尝试使用overridesendMail移动到一个新的公共类中

相关内容

  • 没有找到相关文章