Spring Boot @Transaction没有回滚

时间:2018-04-06 02:19:40

标签: spring hibernate spring-boot transactions spring-data-jpa

我有一个服务,可以在数据库上保存2个实体,并且在保存第二个实体时可能会出现异常,但在这种情况下,不执行回滚,第一个实体保存在数据库中。以下是我的代码。

我的服务的实施。 OBS:importProdutoRepository和importSkuService都是自动装配的。

Map.toList

控制器。

@Transactional(rollbackFor = {DuplicateEntityException.class, Exception.class}, propagation=Propagation.REQUIRED)
@Override
public ImportProduto cadastraProduto(ImportProduto produto, ImportSku sku) throws DuplicateEntityException, EntityValidationException {

    log.info("Cadastrando produto {}", produto);
    produto = importProdutoRepository.save(produto);

    sku.setProduto(produto);
    importSkuService.saveOnDB(sku);

    return produto;
}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,两个表的引擎都是Myisam,然后我改为Innodb,它工作正常。

相关问题