Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O método setSavePoint da transação Grails no mysql causa exceção


Por padrão, o gerenciador de transações para hibernação e MySQL não tem os pontos de salvamento habilitados.

Em BootStrap.groovy adicione o seguinte:

transactionManager.setNestedTransactionAllowed(true)

Então, em uma transação, você pode fazer o seguinte:
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)
  }

}