@Transactional
Definição
Enquanto o método (anotado com @Transactional
) não for processado, não será efetuado a(s) alteração(ões) no banco de dados.
Recomendado seu uso em casos de métodos que acessam o banco de dados e que podem lançar um erro durante a execução da query.
IMPORTANTE: essa anotação só tem suporte para tabelas que possuem o InnoDB como engine.
Vantagens
- Maior segurança na execução das query (evita a inconsistência dos dados)
Propriedades
rollbackFor
-
Definição: por padrão,
@Transactional
só trata (rollback) as exceções não checadas (? extends RuntimeException
). -
Exemplo
@Transactional(rollbackFor = Exception.class) // Método que pode lançar um exceção checada
Sintaxe
@Transactional
// Método
Exemplo
@Transactional
public Anime save(AnimePostRequestBody animePostRequestBody) {
return animeRepository.save(
AnimeMapper.INSTANCE.toAnime(animePostRequestBody)
);
}