【发布时间】:2013-08-07 23:44:53
【问题描述】:
我注意到当我调用
SomeProxy proxyNew = someRequestContext.edit(proxyOld);
proxyNew.setSomething(somethingNew);
someRequestContext.mySaveMethod(proxyNew).fire();
从
返回的实体 @Override //from Locator<SomeEntity ,IdClass>
public SomeEntity find(Class<? extends SomeProxy > clazz, IdClass id) {
...
}
在调用保存方法时在服务器中使用,并且仅将那些 proxyNew 的属性/距离变量值传输到服务器实现mySaveMethod(SomeEntity entity)与返回的实体相比是新的。
现在。我知道有一些比较是为了只为服务器端提供增量,因此通信效率很高,但我认为它在某种程度上被实现 public SomeEntity find(Class<? extends SomeProxy > clazz, IdClass id) 所需的额外处理/传输时间所抵消,它从数据库中检索实体对象。
我现在的问题是,如何在通过无状态会话 bean 公开持久性服务的系统中正确实现这一点,无状态会话 bean 为 GWT 服务器端 servlet/DAO 对象提供服务。以实现最高效率和最低等待时间的方式正确实施。也有人可以更详细地向我解释这个 RequestFactory 方面/过程吗?
我的示例:我从持久层中检索 OrganizerEntry 实体某天跨度 - 一周。
所以方法像
retrieveOrganizerEntries(Date from, Date to) 在持久层中被调用。
然后我看到对于每个要发送到客户端层的OrganizerEntry实体对象,都会进行另一个查询,例如retrieveOrganizerEntry(int id)。
所以不仅相同的对象被查询了两次,而且第二次被一个一个地查询,效率非常低。
如何改进?我是否应该以某种方式将第一次查询的结果缓存在 DAO/servlet 对象中并让public SomeEntity find(Class<? extends SomeProxy > clazz, IdClass id) 搜索缓存?是否可以实现此方法返回null 或
新创建的空实体 (new OrganizerEntity()) 并且在从客户端调用持久/保存方法之前只是设置每个属性/实例变量值?
我在哪里可以找到有关这些内容的更多示例和说明?因为http://www.gwtproject.org/doc/latest/DevGuideRequestFactory.html 在我看来不是很累。
【问题讨论】:
标签: jakarta-ee gwt requestfactory