Sobes.tech
Senior

O que fornece a anotação @Transactional e quais são os seus atributos?

sobes.tech IA

Resposta da IA

A anotação @Transactional em Java é usada para gerir transações ao nível de métodos ou classes. Ela garante que todas as operações dentro da transação sejam executadas de forma atômica: ou todas com sucesso, ou, em caso de erro, ocorre um rollback.

Principais atributos de @Transactional:

  • propagation — define o comportamento da transação ao ser chamada de outro contexto transacional (por exemplo, REQUIRED, REQUIRES_NEW).
  • isolation — nível de isolamento da transação (READ_COMMITTED, SERIALIZABLE, etc.), influencia a visibilidade dos dados.
  • timeout — tempo de espera para a transação terminar, após o qual será interrompida.
  • readOnly — indica que a transação é apenas para leitura, o que pode otimizar o trabalho com o banco de dados.
  • rollbackFor / noRollbackFor — classes de exceções que farão a transação reverter ou não.

Exemplo:

@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
    // lógica de negócio
}