134 votes

@Transactional méthode appelant une autre méthode sans @Transactional’annotation ?

J’ai vu une méthode dans une classe Service qui a été marquée comme , mais elle appelait également d’autres méthodes dans cette même classe qui n’étaient pas marquées comme .

Cela signifie-t-il que l’appel à des méthodes distinctes entraîne l’ouverture par l’application de connexions distinctes à la base de données ou la suspension de la transaction parente, etc. ?

Quel est le comportement par défaut d’une méthode sans annotations qui est appelée par une autre méthode avec `` annotation ?

13voto

sourcedelica Points 12533

@Transactional marque la limite de la transaction (début/fin), mais la transaction elle-même est liée au thread. Une fois qu’une transaction démarre, elle se propage entre les appels de méthode jusqu’à ce que la méthode d’origine retourne et que la transaction soit validée/restaure.

Si une autre méthode est appelée qui a une annotation @Transactional, la propagation dépend de l’attribut de propagation de cette annotation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X