Middle+
Combien de transactions seront ouvertes si dans une classe avec deux méthodes, chacune avec @Transactional propagation REQUIRES_NEW, et que la première appelle la seconde?
sobes.tech IA
Réponse de l'IA
Lors de l'utilisation de l'annotation @Transactional avec propagation = REQUIRES_NEW, chaque méthode sera exécutée dans sa propre transaction distincte. Lorsqu'une première méthode est appelée, une première transaction est ouverte. Lorsqu'une seconde méthode est appelée depuis la première, la transaction en cours est suspendue et une nouvelle transaction est ouverte pour la seconde méthode. Après la fin de la seconde méthode, cette transaction est fermée et la première reprend.
Au total, 2 transactions seront ouvertes : une pour la première méthode et une pour la seconde.
Exemple :
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
// transaction 1
methodTwo(); // appel de la seconde méthode
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
// transaction 2
}