Speicher Ich habe ein Grails Domain-Objekt, das ich zu validieren und dann als solche sparen:Grails Domain-Instanz nicht
if(foo.hasErrors()) {
transactionStatus.setRollbackOnly()
respond foo.errors, view: 'create'
return
}
foo.save flush:true, failOnError:true
println(foo)
Es gibt keine Fehler auf dem Speicher gegeben. Aber wenn ich die println anrufe, sagt es, dass mein Objekt nicht gespeichert ist. Wenn ich jedoch die Datenbank überprüfe, wurde sie tatsächlich beibehalten. Gibt es etwas, das ich überprüfen kann, um mir zu sagen, warum Grails mir sagt, dass es nicht gespeichert ist? Die Grails-Version ist 3.0.9.
Nach weiteren Tests sieht es so aus, als ob es mit der Art und Weise zusammenhängt, wie ich den Schlüssel in meiner Domänenzuordnung angegeben habe.
Wenn ich das ID-Feld entfernen und Grails behandeln standardmäßig das Objekt wird ordnungsgemäß gespeichert. Wenn ich das ID-Feld zurück hinzufüge, hat es das oben beschriebene Problem. Gibt es einen Grund dafür?
Haben Sie es debuggen oder nur von println überprüfen? Welche Version von Grails? Ist die Funktion @Transactional? –
Ändert sich der Status, nachdem Sie die Transaktion bestätigt haben? –
Dies ist Grails 3.0.9. Die Funktion war @Transactional, aber ich entfernte alle Transaktionsstücke und habe das gleiche Problem. – Lithium