RequestFactory Diff计算和'静态'查找方法

时间:2013-04-22 05:49:10

标签: gwt requestfactory

这三个问题有点困扰:

1)我看到diff是用AutoBeanUtils's diff方法计算的。我在实体中看到了一个名为parentObject的标签,用于比较以计算差异。

parent = proxyBean.getTag(Constants.PARENT_OBJECT);课程中的

AbstractRequestContext

这是否意味着加载到浏览器的给定实体有两个副本?如果我的实体实际大小是1kb,那么加载的实际数据将是2kb(因为实体的两个副本被加载到浏览器上)?

2)在服务器端:

假设我必须从数据库中获取实体,static find<EntityName>应该是这样我每次都必须进行数据库调用,或者有没有办法可以微调这种行为? [抱歉,我不太了解locator概念。]

3)当从客户端发送差异时,如果服务器端出现崩溃(由于任何不需要当前请求的原因),会发生什么?

非常感谢。

1 个答案:

答案 0 :(得分:1)

  1. 当您.edit()代理时,它会复制并存储您作为参数传递的不可变代理,作为返回代理的PARENT_OBJECT

  2. 你每次调用这个方法时都会调用一次数据库调用(Locator的{​​{1}}方法也是如此),这个方法不会超过两次每个请求。如果需要,您可以使用某种缓存,但如果您使用JPA或JDO,则会为您处理(您必须使用每个请求的会话模式,即OpenSessionInView)

  3. 如果在解码请求时出现任何错误,将返回全局错误,该错误将传递给失败的所有find()的{​​{1}} onFailure请求。

  4. 请参阅https://code.google.com/p/google-web-toolkit/wiki/RequestFactoryMovingParts#Flow