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.