Spring Boot rollback in chain transactions

Asked

Viewed 58 times

0

After validating all entities, I call a method to perform several operations in the bank, in which if one of them goes wrong, all the above must be undone.

When arriving at the "throw new Exception("Testing Transaction Rollback");" line where I am trying to force the rollback, the same does not happen, inserted records are not removed from the database and changes are not undone after exiting the "persistirEntities" method();".

Short example of the code:

@Service
public class produtoService {

    public void fluxoPrincipal() {
        try {
            validacao = validarEntidades();
            p = persistirEntidades(validacao);
        } catch(Exception ex) {

        }
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
    private Produto persistirEntidades(...) throws Exception{
        persistirMarca();
        persistirProduto();
        persistirCategoriaDoProduto();
        persistirCaracteristicasDoProduto();
        throw new Exception("Testando Rollback da Transação"); // tentando forçar rollback
    }

    @Transactional
    private Marca persistirMarca(Marca m) {
        // realiza insert ou update do objeto M
    }

    @Transactional
    private Produto persistirProduto(Produto p) {
        // realiza insert ou update do objeto p
    }

    @Transactional
    private ProdutoCategoria persistirProdutoCategoria(ProdutoCategoria pc) {
        // realiza insert ou update do objeto pc
    }

    @Transactional
    private List<String> persistirCaracteristicasDoProduto(List<ProdutoCaracteristica> caracteristicas, Produto produto) {
        // realiza diversos inserts ou updates
        // realiza delete de alguns objetos
    }
}
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.