2016-05-12 7 views
1

Ich verwende org.springframework.transaction.annotation.Transactional und rufe Methoden auf, die nur von einer mit @Transactional annotierten Methode aufgerufen werden können.Stellen Sie sicher, dass die aufgerufenen Methoden innerhalb von Spring @Transactional boundary sind.

Aus Gründen, die ich diese Frage nicht verschmutzen werde, sollten die Methoden, die ich als Teil der Transaktion aufrufen möchte, niemals mit der Transaktionsgrenze aufgerufen werden, und ich möchte dies durchsetzen.

Gibt es eine Annotation oder ähnliches, die ich verwenden kann, um sicherzustellen, dass diese Methoden nur erfolgreich aus einer mit @Transactional annotierten Methode aufgerufen werden können?

Antwort

1

Im einfachsten Fall können Sie Propagation.MANDATORY (d. H. @Transactional(propagation=Propagation.MANDATORY)) transaktionale Propagation statt Propagation.REQUIRED verwenden.

Wenn Sie programmatische Transaktionen verwenden, dann überprüfen Sie TransactionStatus Getter - auch wenn Ihre Verbreitung REQUIRED ist, können Sie überprüfen, dassfalse zurückgibt.

Verwandte Themen