Grails La identificación es nula después de llamar a guardar

Ya he buscado sobre esto, pero todavía no puedo entender qué estoy haciendo mal. Despues de llamarsave() el objeto de dominioid esnull.

He leído que sucederá si hay un problema al guardar el objeto, y esosave(flush:true) debería lanzar un error si ese es el caso, pero no lo es. Mira mi código y la salida:

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"

Salida:

no errors. New id: null

Y cuando se usa flush: true

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"

Salida:

no errors. New id: 17

Como puede ver, no hay ningún error al crear el objeto, y debería poder obtener elid del objeto después de solo llamarsave(). ¿Algunas ideas?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta