Senior
98
Ką suteikia @Transactional anotacija ir kokie jos atributai?
Įmonės kur klausė
Позитив Технолоджис
Atsakymas iš AI
sobes.tech AI
„Java“ kalboje @Transactional žymuo naudojamas transakcijų valdymui metodų arba klasių lygyje. Jis užtikrina, kad visi veiksmai transakcijos viduje bus atliekami atominiu būdu: arba visi sėkmingai, arba, jei įvyksta klaida, atliekamas rollback.
Pagrindiniai @Transactional atributai:
- propagation — apibrėžia transakcijos elgseną, kai ji kviečiama iš kito transakcijos konteksto (pvz., REQUIRED, REQUIRES_NEW).
- isolation — transakcijos izoliacijos lygis (READ_COMMITTED, SERIALIZABLE ir kt.), veikia duomenų matomumą.
- timeout — laikas, per kurį transakcija turi būti užbaigta, po kurio ji bus nutraukta.
- readOnly — nurodo, kad transakcija yra tik skaitymo, tai gali optimizuoti darbą su duomenų baze.
- rollbackFor / noRollbackFor — klaidų klasės, kurioms taikomas rollback arba ne.
Pavyzdys:
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
// verslo logika
}