GrailsはデータベースオブジェクトのIDを生成していません。対応するドメインクラスでオブジェクトを作成しました。今私がsave(flush:true)を呼び出すと、null idを取得します。Grailsが保存されてフラッシュされたときにIDが生成されない
しかし、フラッシュはidを生成しませんか?
GrailsはデータベースオブジェクトのIDを生成していません。対応するドメインクラスでオブジェクトを作成しました。今私がsave(flush:true)を呼び出すと、null idを取得します。Grailsが保存されてフラッシュされたときにIDが生成されない
しかし、フラッシュはidを生成しませんか?
マッピングで次のように追加しましたか?
静的マッピング= {
id(generator: "assigned")
}
あなたはそれが実際にそれを保存していることを確認されており、これは通常、あなたがそれをキャプチャし、背中や何でも、それを中継する必要があるので、エラーが発生したことを意味します。 あなたが
if (!object. save(flush:true)) {
// throw new RuntimeException("something went wrong");
//println "object errors ${object.errors} //.allErrors}
//or
//object.errors.reject('object.failed.saved', '')
}
を実行してエラーを表示することができるはず時にはそれが失敗しても、より入れ子になっていると、あなたがエラーかどうかを確認するために、まず、第1の方法を試してみた場合、最後にこの
try {
subobject.removeFromElements(object)
subobject.save(flush:true)
} catch (Exception e) {
throw new ValidationException('failed.message',subobject.errors)
}
のようにキャッチすることができますまだ何もテストをしない場合は、セーブブロック全体にtry catchをラップして、他のコンポーネントが問題を引き起こしていないかどうかを確認してください。あなたの答えは嘘です
コード内で数時間スヌーピングした後、私たちはこのエラーの原因を発見したと思います。 beforeEventではgetDirtyPropertyNames()を要求していますが、何らかの原因でエラーが発生しています。 –
はいこれがあります。すべてがうまくいきました。そして、私は大規模なメソッドを分割するとき。もう何も働かなかった。前に働いたすべての単一のタイプの貯蓄は今働いていません。いくつかの大きなエラーのようです。 –