我Request
中RequestFactory
的{{1}}实现GWT
的详细信息对我来说有点不清楚。请参阅此处the official documentation。
问题1:
查询服务器时,RequestFactory不会自动执行 填充对象图中的关系。为此,请使用with() 对请求的方法,并将相关的属性名称指定为String。
这是否意味着如果服务器上的Entity
使用Lazy Fetching
,则返回的EntityProxy
将使用()指定所有请求的对象?实例化对象服务器端的整个对象图似乎有点奇怪,只向客户端发送一小块。
问题2:
req.with(“foo”)。with(“foo”);和req.with(“foo”)一样; ?
问题3:
req.with(“foo”)。with(“bar”);和req.with(“foo”,“bar”)一样; ?
注意:我很难在源代码中找到with()的实现细节,API对我也没有帮助。
答案 0 :(得分:1)
问题1:
这可能取决于您的服务器端实现。
with
调用只会确保在getFoo()
调用返回客户端之前不久调用相应的getter(RF
)。
这就是为什么你还必须确保使用OpenSessionInView
模式的原因,否则你可能会遇到NullPointeterException
。
问题2:
我想Request<T>
实现了一个构建器模式。
最终结果将是相同的。
但是我不确定getter()
是否会被调用两次,或者with
方法是否会检查是否已经请求了getter。
问题3:
是的,它是一样的。
作为旁注。您可以使用req.with("foo.bar")
。
在后端,这将导致getFoo().getBar()
电话。