作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 Long
ids 在我的实体中,不仅可以将它们存储在数据存储中,还可以引用其他实体。现在,我使用 RequestFactory 在客户端上 create() 对象并将它们持久化,但我需要一种方法来确定服务器生成的 ID。
这是我发现需要两次旅行的一种方法:
final OrganizationProxy proxy = context.create(OrganizationProxy.class);
context.persist().using(proxy).fire(new Receiver<Void>(){
public void onSuccess(Void response)
{
requestFactory.find(proxy.stableId()).fire(new Receiver<OrganizationProxy>()
{
public void onSuccess(OrganizationProxy response)
{
//hey, now response has the server-generated id in it, along with any other values the server populated
}
});
}
});
Long
来自 RequestContext 中的 persist() 方法的 id。这不会从
EntityProxyId
中检索持久 ID ,但它确实让我在单个请求中获得了新对象的持久 ID。
最佳答案
实现 EntityProxyId
的类是 SimpleEntityProxyId
.这个类有一个方法 getServerId()
,这将返回 id。所以通过检查 instanceof
然后您可以调用该方法。 (实际上 RequestFactory.getHistoryToken()
甚至不检查,只是简单地转换到这个类)。
现在坏消息是:它被编码并且是 SimpleEntityProxyId
的基类, 即 SimpleProxyId
并包含方法 getServerId()
,特别指出:
The encodedAddress is totally opaque to the client. It's probably a base64-encoded string, but it could be digits of pi. Any code that does anything other than send the contents of this field back to the server is wrong.
encodedAddress
包含服务器 ID。)
关于GWT 请求工厂 : How can I get a persistent id from stableId()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5058940/
我是一名优秀的程序员,十分优秀!