Avoir une transaction dans une classe de service Grails sur lequel un drapeau de rollback est défini:Grails: maintenir le contexte transactionnel de service au contrôleur
TransactionAspectSupport
.currentTransactionInfo()
.transactionStatus
.setRollbackOnly()
ce qui se passe est que lorsque nous revenons au contrôleur une exception:
org.springframework.transaction.UnexpectedRollbackException
que nous devons attraper dans le contrôleur (mais pas dans l'une des classes de service). Ce code est en cours de refactorisation de la solution précédente où toute la logique est arrivée directement dans le contrôleur. Tout conseil sur ce qui se passe que les voyages de cette exception levée lorsque la méthode retourne, étant donné que:
static transactional = true
a été mis sur toutes les classes. Devinant il y a des versets de contrôleur subtils Service de magie se passe - quelqu'un est-il au courant? Pour l'instant, il suffit d'attraper l'exception en guise de solution de contournement, mais l'objet TransactionStatus qui aurait autrement été renvoyé est perdu.
Toute pensée très appréciée
Merci pour cela. Cependant, nous sommes à court de temps pour étudier ces alternatives et pour l'instant, nous ne faisons qu'attraper l'exception car la transaction existe le service et entre dans le contrôleur. Réponse définitivement appréciée cependant – Alex