gwt requestfactory についてあなたの助けが必要です
次のシナリオを検討
して
ください: サーバーから既存のエンティティ (請求書としましょう) を取得します。
InvoiceEntityProxy invoice = request1.getInvoice();
いくつか変更を加えたいので、新しいリクエストで編集します。
InvoiceEntityProxy editableInvoice = request2.edit(invoice);
//make some changes to editableInvoice
次に、2 番目のリクエストで行った変更をサーバーに送信して、プレビューを作成します。
request2.createPreview(editableInvoice);
リクエストが送信されると、請求書プロキシは凍結され、新しいリクエストにプロキシを割り当てて編集を再度有効にします。
editableInvoice = request3.edit(editableInvoice);
すべて問題なければ、最新のリクエストを使用してプロキシを更新し、サーバーに送信します。
request3.update(editableInvoice);
しかし、最新のリクエスト (request3) は、request2 に割り当てられたプロキシに加えられた変更について何も知らないため、変更がサーバーに到着することはありません。
次の解決策を考えました:
- 最新のプロキシで変更をやり直すことができました。しかし、そのためには、すべての属性を反復処理して再度設定する必要があります (プロキシにいくつかの属性を追加するたびにメソッドを調整する必要があるため、あまり友好的な解決策ではありません)。
- 別のアプローチは、id なしで proyx をサーバーに送信し、id を update-method の 2 番目のパラメーターとして送信することです。しかし、これは残念なことです。なぜなら、デルタだけがサーバーに送信されるわけではないからです (これは、requestFactory の優れた機能の 1 つです)。
したがって、別のリクエストに割り当てられたときに、プロキシに既に加えられた変更について request3 に知らせるための最善かつ最も一般的な方法は何ですか。