Sobes.tech
Junior — Middle

Como funciona a anotação @Transactional e quais os mecanismos que ela utiliza para garantir a integridade transacional?

sobes.tech IA

Resposta da IA

A anotação @Transactional em Java (geralmente no Spring Framework) é usada para marcar métodos ou classes que devem ser executados no âmbito de uma transação.

Ela garante:

  • Início automático da transação ao entrar no método.
  • Commit da transação ao concluir com sucesso.
  • Rollback da transação em caso de exceções.

Os mecanismos utilizados são:

  • Proxies (dinâmicos ou CGLIB) interceptam as chamadas de métodos.
  • O gestor de transações (PlatformTransactionManager) gerencia o ciclo de vida da transação.

Exemplo:

@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        userRepository.save(user);
        // se uma RuntimeException for lançada aqui, a transação será revertida
    }
}

Assim, @Transactional garante a integridade dos dados, gerenciando automaticamente as transações sem a necessidade de escrever código explícito para iniciar, confirmar ou reverter.