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
}