入力タイプがあり、その値はflowScopeに設定されています。
<input name="myItem" required="false" value="flowScope.myItem"/>
MyOtherItem のリストを作成し、次のようにコントローラー メソッドに送信しています。
<evaluate expression="myController.save(myOtherItemDataModel.selectedRows,myItem)" result="flowScope.myItem"/>
MyController 内には、myOtherItemList からデータを取得して myItem の複数のインスタンスを保存するメソッド save があります。
public MyItem save(MyOtherItem[] myOtherItem,MyItem myItem){
for(int i=0; i<myOtherItem.length; i++){
myItem.setData(myOtherItem[i].getData());
saveMyItem(myItem);
}
return myItem;
}
saveMyItem メソッド内で MyItem オブジェクトを永続化しています
public void saveMyItem(MyItem myItem) {
entityManager.persist(myItem);
}
ここで、entityManager は javax.persistence.EntityManager クラスのインスタンスです。
私の問題は、save メソッドのループが複数回実行されている間に、データベースに保存されたエントリが 1 つしかないことです。その理由は、MyItem の新しいインスタンスを作成するのではなく、古いインスタンスのデータをオーバーライドするだけだからです。この問題を解決する方法を知っている人はいますか?