gwt-RequestFactory用法,返回的EntityProxy中缺少内容

gwt-RequestFactory用法,返回的EntityProxy中缺少内容,gwt,Gwt,我的环境: -RequestFactory(GWT 2.5rc2,在2.5rc1和2.4之前-与问题无关) -冬眠 -Spring的OpenSessionInView过滤器(每个请求的会话) 我想用如下结构来保持EntityProxy: EntityProxy_A ... other properties ... --> Set<EntityProxy_B setEntProxB; --> EntityProxy_C entProxC; -->

我的环境:
-RequestFactory(GWT 2.5rc2,在2.5rc1和2.4之前-与问题无关)
-冬眠
-Spring的OpenSessionInView过滤器(每个请求的会话)

我想用如下结构来保持EntityProxy:

EntityProxy_A
  ... other properties ...
  --> Set<EntityProxy_B setEntProxB;
    -->  EntityProxy_C entProxC;
    -->  EntityProxy_D entProxC;
然后我用“请求”创建我的EntityProxy_B、C、D并组装所有东西(如上面所列)

现在我打电话

request.save(editableA)
       .with("setEntProxB",
             "setEntProxB.entProxC",
             "setEntProxB.entProxD")
       .fire(Receiver<EntityProxy_A>() {
          @Override
          public void onSuccess(EntityProxy_A response) {
             .......
          }
调用“编辑”时,我收到一个错误
“…使用空RequestContext解冻bean时出错…”
这是因为EntityProxy_C和EntityProxy_D(不是集合中的EntityProxy_B!)返回为“冻结=错误”,当然,此时也没有请求上下文。当我查看JSON时,我看到类似于entProxC:{}(其中所有内容都是空的,没有有效负载)

我在中发现了这种情况,但在代码中看不到解决方案。。。就是刚才提到的错误

现在我的问题是——我应该能够像那样使用RequestFactory吗

解决方案/问题2-我现在的解决方案,可以这样使用requestfactory吗:

我现在请求的方法如下

Request<EntityProxy_A> save(EntityProxy_A);  
Request<EntityProxy_A> createNew();
Request<Void> save(EntityProxy_A);  
Request<EntityProxy_A> createNew();
然后我在我的“我的作品”上编辑,最后

request.save(myWorkA)
       .fire(Receiver<Void>() {
          @Override
          public void onSuccess(Void response) {
             .....
          }
我已经有了我的“myWorkA”,为什么不在新的RequestContext中对其进行编辑,然后继续编辑、保存、保存

这对我来说非常有效。。。我的问题。。。这是一件好事吗

当我重新保存我的“myWorkA”时,其中当然仍然有空的实体ID,因为我从未从服务器加载最新版本-我没有问题,相应的实体在服务器上更新,而不是一次又一次地创建(因为空ID可以猜到)

如果有人可以澄清,为什么解决方案1不起作用(或者无论如何都不应该起作用),以及是否可以像解决方案2中所示那样工作

我唯一剩下的其他方法是:

Request<Void> save(EntityProxy_A);  
Request<EntityProxy_A> load(Long entProxId);  
Request<EntityProxy_A> createNew();
请求保存(EntityProxy\u A);
请求加载(长entProxId);
请求createNew();
但我不喜欢这样。。。交通

无论如何,现在-如果这是RequestFactory的正确用法-到目前为止,我更喜欢解决方案2

期待你的回答

你好,安德烈亚斯

 EntityProxy_A myWorkA;
 ....
 public void onSuccess(EntityProxy_A response) {
   MyRequest request = myRequestFactory.getMyRequest();
   myWorkA = request.edit(response);
   ...
request.save(myWorkA)
       .fire(Receiver<Void>() {
          @Override
          public void onSuccess(Void response) {
             .....
          }
 public void onSuccess(Void response) {
   MyRequest request = myRequestFactory.getMyRequest();
   myWorkA = request.edit(myWorkA);
   ...
Request<Void> save(EntityProxy_A);  
Request<EntityProxy_A> load(Long entProxId);  
Request<EntityProxy_A> createNew();