ExpertiDict

Java · Intermediário · Português · Técnico

anotação Transactional

/anotaˈsɐ̃w tɾɐ̃zˈækʃənəl/substantivo

Anotação do Spring que executa o método dentro de uma transação: abre no início, confirma no fim e desfaz se houver exceção não verificada.

Onde usar

Aparece em serviços que gravam em mais de uma tabela. Em review: 'a transação cobre as duas gravações?'.

Em código

@Service
class TransferenciaService {
  @Transactional
  public void transferir(long de, long para) {
    debitar(de);
    creditar(para); // falhou: desfaz os dois
  }
}

Exemplos

Põe o Transactional no método para as duas gravações irem juntas.

O rollback não aconteceu porque a exceção era checked.

Cuidado

Chamar outro método da mesma classe (this.outro()) não passa pelo proxy e ignora a anotação. Por padrão, só RuntimeException provoca rollback.

Sinônimos

@Transactional

Veja também

Todos os termos de Java