1 対多の関係の親と子を一度に永続化する必要があります。問題のドメイン オブジェクトはProject
and ProductLineItem
(a Project
has many ProductLineItem
s) です。
ユーザーが 'products' テーブルに 1 つ以上の行を追加できるページを作成しました。ユーザーがフォームを送信したときに、各行を新しいProductLineItem
( が所有する) として保持したいと考えています。Project
初めてドメイン オブジェクトを保存するとうまくいきますが、(更新ページを介して) 同じオブジェクト セットを更新しようとすると、コントローラーで IndexOutOfBoundsException が発生します。
projectInstance.properties = params
productLineItems
コレクションを次のように宣言することで、これを修正できますProject
-
Collection<ProductLineItem> productLineItems = ListUtils.lazyList(new ArrayList(), {new ProductLineItem()} as org.apache.commons.collections.Factory)
ただし、何らかの理由で、これによりProductLineItem.project
、最初の保存を行うときにプロパティが設定されなくなります。
Grails 2.2.2 を使用しています。何か案は?