Sobes.tech
Junior — Middle

Milyen típusú tranzakcióterjesztések léteznek a Spring Framework keretében?

sobes.tech MI

Válasz az MI-től

A Spring Framework-ben a tranzakciók következő típusai léteznek, amelyek meghatározzák, hogy a tranzakciókkal rendelkező módszerek hogyan lépnek kölcsönhatásba:

  • PROPAGATION_REQUIRED (alapértelmezett) — ha már létezik tranzakció, a módszer abban fut, különben új jön létre.
  • PROPAGATION_REQUIRES_NEW — mindig új tranzakció jön létre, a meglévő szünetel.
  • PROPAGATION_SUPPORTS — ha van tranzakció, a módszer abban fut, különben tranzakció nélkül.
  • PROPAGATION_NOT_SUPPORTED — a módszer tranzakción kívül fut, a meglévő tranzakció szünetel.
  • PROPAGATION_NEVER — a módszer tranzakción kívül kell, hogy fusson, ha van, kivétel keletkezik.
  • PROPAGATION_MANDATORY — a módszernek meglévő tranzakcióban kell futnia, különben kivétel keletkezik.
  • PROPAGATION_NESTED — ha van tranzakció, akkor egy beágyazott (savepoint) tranzakció jön létre, különben új.

Használati példa:

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void someMethod() {
    // kód
}