RF EntityProxy にマッピングされた単純な 1 対 n の関係 (製品 -> アイテム) があります。そう、
ProductProxy extends EntityProxy {
List <ItemProxy> getItems();
void setItems(List<ItemProxy> items);
}
アイテム用のネストされた ListEditor を備えた製品エディターもあります。新しいアイテムをproduct.itemsリストに追加するか、それらのいずれかを編集すると(正常に保存されます)、すべてが正常に機能しています。
ただし、ProductProxy.getItems().remove(index) から 1 つのアイテムを削除し、その製品全体を保存しようとすると、オブジェクトがサーバー側に到着したときに、削除したばかりのアイテムがまだ内部にあることに気付きましたコレクション。
RF は、サービス オブジェクトに新しい値を挿入する前に、(ロケーターを使用して) オブジェクトをデータストアにルックアップしようとするように思えます。
基本的に、コレクション内のアイテムを削除し、新しい (変更された) コレクションを Product オブジェクトに保存できるようにする必要があります。
ありがとう!!
PS。そのコレクションを保持するために Objectify Ref<> を使用しています。
リクエスト送信前のペイロード:
{"F":"web.app.gwt.shared.AppRequestFactory","O":[{"T":"kKv$zKrUQuvZDqvbc2XdTq6i1qU=","V":"NC4w","P":{"defaultOptions":[]},"S":"IjI5MiI=","O":"UPDATE"},{"T":"_dEu_lZqt6BooJQsjzBeHUf38EY=","V":"NC4w","S":"IjI5MCI=","O":"UPDATE"},{"T":"_dEu_lZqt6BooJQsjzBeHUf38EY=","V":"NC4w","S":"IjI4OSI=","O":"UPDATE"},{"T":"_dEu_lZqt6BooJQsjzBeHUf38EY=","V":"NC4w","S":"IjI5MSI=","O":"UPDATE"}],"I":[{"P":[{"T":"kKv$zKrUQuvZDqvbc2XdTq6i1qU=","S":"IjI5MiI="}],"O":"O4GgjqqjQkeFcxD6lGwHruEwO6U="}]}