Erreur: Ligne a été mis à jour ou supprimé par une autre transaction (ou unsaved-value mapping a été incorrect)

J'ai l'action suivante:

def index() {

  User.withNewTransaction {

   def user = User.get(params.userId)
   user.name = "test"
   user.save(flush:true)

   response.setContentType("image/gif")
   response.outputStream << PIXEL_BYTES_OF_A_GIF_IMAGE
   return
  }
}

Lors de l'exécution, parfois, j'ai l'erreur suivante:

Message
Executing action [index] of controller [test.TestController] caused exception: Runtime error executing action
Caused by
Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [test.User#1]

Pourquoi cette erreur se produit? J'ai pensé withNewTransaction permettrait d'éviter cette erreur.

InformationsquelleAutor | 2013-08-07