gpt4 book ai didi

GWT 请求工厂 : How can I get a persistent id from stableId()?

转载 作者:行者123 更新时间:2023-12-04 06:47:54 31 4
gpt4 key购买 nike

我用 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
}
});
}
});

但似乎必须有一种方法可以在没有第二次旅行的情况下获得持久性 id。似乎 requestFactory.find() 首先需要持久性 id 才能工作。

如何在不向服务器发出第二个请求的情况下获取持久 ID?

======更新=======

我终于想到(在 tbroyer told me ;) 之后)我可以归还 Long来自 RequestContext 中的 persist() 方法的 id。这不会从 EntityProxyId 中检索持久 ID ,但它确实让我在单个请求中获得了新对象的持久 ID。

我将这个问题保持开放 - 我仍然对从 EntityProxyId 中获取持久 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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com