Transações do Spring
Gerenciamento de transações com @Transactional, propagation, isolation, rollback, PlatformTransactionManager
1Qual é o papel principal da anotação @Transactional no Spring?
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.
2Qual é o tipo de propagation padrão para @Transactional?
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.
3O que acontece se uma RuntimeException for lançada em um método @Transactional?
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.
Onde a anotação @Transactional pode ser aplicada?
Qual comportamento o Propagation.REQUIRES_NEW adota?
+27 perguntas de entrevista
Outros temas de entrevista Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging com SLF4J e Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Tratamento de exceções
Bean Validation
Fundamentos do Spring Data JPA
Entidades JPA e relacionamentos
Consultas JPA
Spring Data Repositories
Fundamentos do Spring Security
Spring Boot Actuator
Testes unitários com JUnit e Mockito
Testes no Spring Boot
Profiles e Environment
RestTemplate e WebClient
Async e Scheduling
Caching com Spring
Spring WebFlux (Reactive)
Autenticação e autorização avançadas
JWT e segurança stateless
OAuth2 e Authorization Server
Spring Boot e Docker
Microservices com Spring
Spring Cloud Config
Otimização de desempenho
GraalVM Native Images
Domine Spring Boot para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis