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
}