Sobes.tech
Senior

Čo poskytuje anotácia @Transactional a aké má atribúty?

sobes.tech AI

Odpoveď od AI

Komentár @Transactional v Jave sa používa na riadenie transakcií na úrovni metód alebo tried. Zaručuje, že všetky operácie v rámci transakcie budú vykonané atomicky: buď všetky úspešne, alebo pri chybe dôjde k rollbacku.

Hlavné atribúty @Transactional:

  • propagation — určuje správanie transakcie pri volaní z iného transakčného kontextu (napríklad REQUIRED, REQUIRES_NEW).
  • isolation — úroveň izolácie transakcie (READ_COMMITTED, SERIALIZABLE atď.), ovplyvňuje viditeľnosť dát.
  • timeout — čas čakania na dokončenie transakcie, po ktorom bude prerušená.
  • readOnly — označuje, že transakcia je iba na čítanie, čo môže optimalizovať prácu s databázou.
  • rollbackFor / noRollbackFor — triedy výnimiek, pri ktorých bude alebo nebude transakcia rollbackovaná.

Príklad:

@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
    // obchodná logika
}