RequestFactory的实体关系

时间:2013-08-28 12:44:33

标签: gwt request requestfactory gwt2

RequestRequestFactory的{​​{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对我也没有帮助。

1 个答案:

答案 0 :(得分:1)

问题1:

这可能取决于您的服务器端实现。 with调用只会确保在getFoo()调用返回客户端之前不久调用相应的getter(RF)。

这就是为什么你还必须确保使用OpenSessionInView模式的原因,否则你可能会遇到NullPointeterException

问题2:

我想Request<T>实现了一个构建器模式。 最终结果将是相同的。 但是我不确定getter()是否会被调用两次,或者with方法是否会检查是否已经请求了getter。

问题3:

是的,它是一样的。

作为旁注。您可以使用req.with("foo.bar")。 在后端,这将导致getFoo().getBar()电话。