-
transação só é suportado em tabelas que possuem o InnoDB como engine.
-
Como saber se minha tabela tem isso?
- 1º Abra o MySQL Workbench
- 2º Selecione o schema que você quer verificar
- 3º Escreva o seguinte comando na query:
show table status
- 4º Ache a coluna Engine (2ª coluna)
- 5º Verifique se é igual à
InnoDB
- Indica para o Spring que enquanto o método não for finalizado, ele não dará commit na transição.
- Basta colocar @Transactional no método
- Exemplo
@Transactional // Método que pode lançar uma exceção em tempo de execução
- Por padrão, o @Transactional não não dá rollback em exceções checadas.
- Como resolver isso?
- Basta colocar uma propriedade chamada rollbackFor.
- Exemplo
@Transactional(rollbackFor = Exception.class) // Método que pode lançar um exceção checada
- Mais segurança nas operações com o banco de dados
- devdojo-courses
@Transactional public Anime save(AnimePostRequestBody animePostRequestBody) { return animeRepository.save( AnimeMapper.INSTANCE.toAnime(animePostRequestBody) ); }