Je souhaite implémenter le contrôle des transactions au niveau de la fonction. Ce que je veux, c'est quelque chose comme ça.Problème lors de l'implémentation des transactions déclaratives
classe MyService {
transactionnel statique = false
@Transactional (readOnly = false, propagation = Propagation.REQUIRES_NEW)
saveCountry def publique() {Pays co = nouveau Pays (nom: 'mycountry') co.save() createState()
}
@Transactional (readOnly = false, propagation = Propagation.REQUIRES_NEW)
createState def publique() { Etat Etat = new Etat (nom: 'Etat') state.save() throw new RuntimeException() }}
ce que je veux est que createState() crée une nouvelle, de sorte que si createState() indépendante de transaction du saveCountry() échoue,
l'objet pays déjà enregistré n'est pas révoqué. Bien que j'ai donné les annotations, mais ils ne produisent pas l'effet désiré. Une seule transaction est créée ici et elle est révoquée lorsque l'exception est levée. Aucun objet n'est enregistré.
Quelqu'un peut-il aider
Il ressemble à un bug Grails. Déposer un problème JIRA ici: http://jira.codehaus.org/browse/GRAILS – fabien7474
J'ai eu le même problème - voici la solution: http://grails.1312388.n4.nabble.com/Declarative-transactions- don-t-travaux-en-1-3-x-tp2308918p2309028.html – Oleksandr