Grails. Nach dem Aufruf von save ist die ID null

Ich habe bereits danach gesucht, kann aber immer noch nicht herausfinden, was ich falsch mache. Nach dem Anrufsave() das Domain-Objektid istnull.

Ich habe gelesen, dass es passieren wird, wenn beim Speichern des Objekts ein Problem auftrittsave(flush:true) sollte einen Fehler auslösen, wenn dies der Fall ist, aber es ist nicht der Fall. Schau dir meinen Code und die Ausgabe an:

def pic = new Picture(title:'XX', path:"XXX")
album.addToPictures(pic).save()
if(pic.validate())
   println "no errors. New id: " + pic.id
else
   println "with errors"

Ausgabe:

no errors. New id: null

Und bei Verwendung von Flush: wahr

def pic = new Picture(title:'XX', path:"XXX")
album.addToPictures(pic).save(flush:true)
if(pic.validate())
   println "no errors. New id: " + pic.id
else
   println "with errors"

Ausgabe:

no errors. New id: 17

Wie Sie sehen, gibt es keine Fehler beim Erstellen des Objekts, und ich sollte in der Lage sein, die zu erhaltenid des Objekts nach nur dem Aufrufsave(). Irgendwelche Ideen?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage