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();