Sobes.tech
Junior — Middle

Kokie yra transakcijų plitimo tipai Spring Framework ribose?

sobes.tech AI

Atsakymas iš AI

Spring Framework'e yra šie plitimo (propagation) tipai, kurie nustato, kaip metodai su transakcijomis sąveikauja tarpusavyje:

  • PROPAGATION_REQUIRED (numatytasis) — jei jau egzistuoja transakcija, metodas joje bus vykdomas, kitaip bus sukurta nauja.
  • PROPAGATION_REQUIRES_NEW — visada sukuriama nauja transakcija, esama yra sustabdyta.
  • PROPAGATION_SUPPORTS — jei yra transakcija, metodas joje bus vykdomas, kitaip be transakcijos.
  • PROPAGATION_NOT_SUPPORTED — metodas vykdomas už transakcijos ribų, esama transakcija yra sustabdyta.
  • PROPAGATION_NEVER — metodas turi būti vykdomas už transakcijos ribų, jei yra, bus išmesta išimtis.
  • PROPAGATION_MANDATORY — metodas turi būti vykdomas esamoje transakcijoje, jei nėra, bus išmesta išimtis.
  • PROPAGATION_NESTED — jei yra transakcija, sukuriama įdėta (savepoint) transakcija, kitaip — nauja.

Pavyzdys naudojimo:

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void someMethod() {
    // kodas
}