J'ai un service où enregistrer beaucoup de données à db. En utilisant MYSQL Je l'ai utilisé comme cetteGrails rollback opération db sur une erreur
Domain1.withTransaction {text->
def domain1=//Create my domain object to save
if(!domain1.save()){
domain1.errors.each {
println it
}
throw new RuntimeException('unable to save domain1')
}
Domain2.withTransaction {text->
def domain2=//Create my domain object to save
if(!domain2.save()){
domain2.errors.each {
println it
}
throw new RuntimeException('unable to save domain2')
}
Mon problème s'il se produisit un problème pour sauver domain2 je dois faire reculer domain1 sauver aussi.
Je dois enlever domain1 de db.
ne fonctionne pas pour moi. Si 'domain2.save' cause une exception RuntimeException, je peux voir l'effet de domain1.save dans ma base de données. – Jithin
Y at-il une configuration que je dois définir pour cela? – Jithin
Pourriez-vous vérifier que le service se trouve dans/grails-app/services? De plus, l'injection de dépendances est la seule façon de faire fonctionner les transactions déclaratives. Vous n'obtiendrez pas de service transactionnel si vous utilisez le nouvel opérateur tel que new SomeService() –