Mysql
 sql >> Base de données >  >> RDS >> Mysql

La méthode setSavePoint de la transaction Grails sur mysql provoque une exception

Par défaut, le gestionnaire de transactions pour hibernate et MySQL n'a pas les points de sauvegarde activés.

Dans BootStrap.groovy, ajoutez ce qui suit :

transactionManager.setNestedTransactionAllowed(true)

Ensuite, dans une transaction, vous pouvez effectuer les opérations suivantes :

Thing.withTransaction { status ->
  //Do some work and a save
  def savePoint = status.createSavepoint()
  //do other work
  if(checkOk)
  {
    //Everything worked so don't need the save point anymore
    status.releaseSavepoint(savePoint)
  }
  else
  {
    //The other work did not work so rollback from it.
    status.rollbackToSavepoint(savePoint)
  }

}