Spring Boot

Transações do Spring

Gerenciamento de transações com @Transactional, propagation, isolation, rollback, PlatformTransactionManager

30 perguntas de entrevista·
Senior
1

Qual é o papel principal da anotação @Transactional no Spring?

Resposta

@Transactional indica que um método deve ser executado dentro de um contexto transacional, garantindo a atomicidade das operações de banco de dados. O Spring cria automaticamente um proxy AOP em torno da classe para gerenciar o início, o commit e o rollback das transações. Essa abordagem declarativa simplifica enormemente o gerenciamento transacional em comparação com a programação manual usando TransactionTemplate ou PlatformTransactionManager.

2

Qual é o tipo de propagation padrão para @Transactional?

Resposta

Propagation.REQUIRED é o tipo de propagation padrão. Com essa estratégia, o Spring se juntará a uma transação existente, se houver, ou criará uma nova caso contrário. Esse é o comportamento mais comum e intuitivo para a maioria dos casos de uso, garantindo que sempre haja uma transação presente para as operações de banco de dados.

3

O que acontece se uma RuntimeException for lançada em um método @Transactional?

Resposta

Por padrão, o Spring realiza automaticamente o rollback da transação quando uma RuntimeException (ou Error) é lançada. Isso garante que as modificações no banco de dados sejam desfeitas em caso de erros inesperados. Em contrapartida, as exceções checked (que herdam de Exception mas não de RuntimeException) não disparam rollback por padrão, a menos que sejam especificadas explicitamente com rollbackFor.

4

Onde a anotação @Transactional pode ser aplicada?

5

Qual comportamento o Propagation.REQUIRES_NEW adota?

+27 perguntas de entrevista

Domine Spring Boot para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis