0

inRequestの with() 実装の詳細は、私には少しわかりません。公式ドキュメントについては、こちらを参照してください。RequestFactoryGWT

質問1:

サーバーにクエリを実行するとき、RequestFactory はオブジェクト グラフにリレーションを自動的に設定しません。これを行うには、リクエストで with() メソッドを使用し、関連するプロパティ名を文字列として指定します。

Entityこれは、サーバーで が を使用するLazy Fetching場合、返さEntityProxyれた には with() で指定されたすべての要求されたオブジェクトが含まれることを意味しますか? オブジェクト サーバー側のオブジェクト グラフ全体をインスタンス化して、小さな断片だけをクライアントに送信するのは少し奇妙に思えます。

質問2:

req.with("foo").with("foo"); を行います。req.with("foo"); と同じことを行います。?

質問 3:

req.with("foo").with("bar"); を行います。req.with("foo","bar"); と同じことを行います。?

注: ソース コードで with() の実装の詳細を見つけるのに非常に苦労しており、APIも役に立ちません。

4

1 に答える 1

1

質問1:

おそらく、サーバー側の実装に依存します。呼び出しは、呼び出しがクライアントに戻る 直前にwith、対応する getter ( ) が呼び出されることを確認するだけです。getFoo()RF

これが、必ずOpenSessionInViewパターンを使用する必要がある理由です。そうしないと、NullPointeterExceptions に遭遇する可能性があります。

質問2:

Request<T>ビルダーパターンを実装していると思います。最終結果は同じになります。ただし、getter()が 2 回呼び出されるのか、withメソッドがゲッターが既に要求されているかどうかを確認するのかはわかりません。

質問 3:

はい、同じです。

補足として。使用できますreq.with("foo.bar")。バックエンドでは、これは呼び出しにつながりgetFoo().getBar()ます。

于 2013-08-28T16:34:47.767 に答える