image

Unlimited bootcamps and 750+ courses forever

70
%OFF
Article image
Ellen Silva
Ellen Silva01/09/2026 09:57
Share
IBM Bob: IA de Nível Empresarial para Desenvolvedores e Tech LeadersRecommended for youIBM Bob: IA de Nível Empresarial para Desenvolvedores e Tech Leaders

Quando metade da operação funciona, você pode ter um problema inteiro

    Leia. Curta. Comente. Compartilhe.

    ...

    Entenda como @Transactional e rollback ajudam a evitar dados inconsistentes quando uma operação possui várias etapas e alguma coisa dá errado no meio do caminho.

    ...

    TRANSACTIONAL

    Imagine que você vai fazer uma transferência de R$ 100.

    O sistema começa:

    Retira R$ 100 da sua conta
            ↓
            ↓
          ERRO
            ↓
    O dinheiro não chega na outra conta
    
    

    Pronto.

    Você acabou de mandar R$ 100 diretamente para o triângulo das Bermudas do banco de dados.

    É justamente para evitar situações desse tipo que precisamos entender transações.

    Algumas operações precisam ser um pacote completo

    Pense em comprar um produto pela internet.

    O sistema pode precisar:

    Diminuir o estoque

    Registrar o pedido

    Registrar o pagamento

    Agora imagine que ele diminui o estoque e depois dá erro antes de criar o pedido.

    O produto sumiu do estoque, mas ninguém comprou.

    Nada bom.

    Nessas situações, queremos uma regra simples:

    Ou todas as etapas dão certo, ou nenhuma delas fica pela metade.

    É aí que entra uma transação.

    E onde entra o @Transactional?

    No Spring, podemos encontrar algo assim:

    
    @Transactional
    public void transferir() {
    
      debitarConta();
      creditarConta();
    }
    
    

    Ao usar @Transactional, estamos dizendo que aquelas alterações fazem parte de uma mesma transação.

    Se tudo funcionar:

    Débito ✓
    Crédito ✓
    
    

    A operação pode ser confirmada.

    Isso é o commit.

    Mas se alguma coisa der errado:

    Débito ✓
    Crédito ✗
    
    

    podemos precisar desfazer as alterações realizadas.

    É aí que aparece o famoso rollback.

    Rollback é basicamente o Ctrl + Z da operação

    Imagine que você está preenchendo um formulário enorme.

    Preenche nome.

    Endereço.

    Telefone.

    Pagamento.

    Aí descobre que alguma informação essencial está errada e precisa cancelar tudo.

    O rollback segue uma ideia parecida:

    “Essa operação não conseguiu terminar corretamente. Vamos voltar ao estado anterior.”

    Assim evitamos deixar dados inconsistentes pelo caminho.

    Mas @Transactional não é botão mágico

    É tentador descobrir essa anotação e pensar:

    
    @Transactional
    
    

    “Pronto. Protegi o universo.”

    Não exatamente.

    Você ainda precisa entender quais operações realmente precisam acontecer juntas e quais erros devem fazer aquela transação voltar atrás.

    A anotação ajuda bastante, mas a regra continua sendo sua.

    3 coisas para lembrar

    1. Pense no que não pode ficar pela metade

    Transferências, pagamentos, pedidos e atualizações relacionadas são bons exemplos.

    Pergunte:

    “Se der erro na segunda etapa, a primeira pode continuar existindo?”

    Se a resposta for não, vale investigar uma transação.

    2. Commit confirma

    Tudo deu certo?

    Commit.

    As alterações podem permanecer.

    3. Rollback volta atrás

    Algo importante falhou?

    Rollback.

    A ideia é evitar deixar metade da história salva no banco.

    No fim, transação é sobre consistência

    @Transactional parece apenas mais uma anotação do Spring.

    Mas por trás dela existe uma ideia muito importante:

    certas operações só fazem sentido quando acontecem por completo.

    Porque uma transferência pela metade não é meia transferência.

    É um problema inteiro.

    E dependendo do valor que desapareceu no caminho, provavelmente um problema com alguém ligando para o suporte também.

    >> Você já tinha parado para pensar no que aconteceria com seus dados se uma operação falhasse exatamente no meio?

    __

    Indicação de livro

    Spring Start Here

    Autor: Laurentiu Spilca

    É uma boa leitura para entender melhor os recursos do Spring e o que acontece por trás de várias anotações que parecem simples quando aparecem no código.

    Share
    Recommended for you
    CI&T - Java AI Copilot
    Itaú - Java com Inteligência Artificial
    Nublify - Primeiros passos em IA e Cloud
    Comments (0)
    Recommended for youIBM Bob: IA de Nível Empresarial para Desenvolvedores e Tech Leaders