Grails. Po wywołaniu save identyfikator jest zerowy

Szukałem już o tym, ale wciąż nie mogę zrozumieć, co robię źle. Po wywołaniusave() obiekt domenyid jestnull.

Przeczytałem, że stanie się, gdy wystąpi problem podczas zapisywania obiektu i tak dalejsave(flush:true) powinien wrzucić błąd, jeśli tak jest, ale tak nie jest. Spójrz na mój kod i wynik:

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"

Wydajność:

no errors. New id: null

A kiedy używasz 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"

Wydajność:

no errors. New id: 17

Jak widać, nie ma żadnych błędów podczas tworzenia obiektu i powinienem być w stanie uzyskaćid obiektu po wywołaniusave(). Jakieś pomysły?

Dzięki

questionAnswers(2)

yourAnswerToTheQuestion