Sobes.tech
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
}