ID ジェネレーターが割り当てられている (つまり、自動生成されない) ドメイン クラスを使用して grails アプリケーションを構築しています。ドメイン クラス Parentstatic hasMany = [children: Child]
とドメイン クラス Child があるとします。
を使用して Parent のインスタンスを見つけようとしていますが、ID 0 を持つこのセッションに関連付けられた Child インスタンスが既に存在することを示すNonUniqueObjectExceptionParent.findWhere(propertyMap)
を取得しています。私の propertyMap には ID のエントリが含まれていません。
現在、ID を設定せずにセッションで 1 つのクラスの 2 つのインスタンスを保存しようとすると、常にこのエラーが発生することに慣れています。ID は自動生成されないため、デフォルトでゼロに設定されます。これにより、最初の ID は保存され、2 番目の ID は最初の ID の複製であるため、エラーがスローされます。ここで驚いたのは、インスタンスを保存するのではなく、インスタンスを見つけようとしているということです...この動作の原因と、プロパティマップを使用して検索中にそれを回避する方法を知っている人はいますか?