我有一个服务,可以在数据库上保存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;
}
答案 0 :(得分:0)
我找到了解决方案,两个表的引擎都是Myisam,然后我改为Innodb,它工作正常。