Я использую Long
идентификаторов в своих объектах, а не только для их хранения в хранилище данных, но для ссылки на другие объекты. Теперь я использую RequestFactory для создания объектов () на клиенте и их сохранения, но мне нужен способ выяснить, какой идентификатор сгенерирован сервером.
Вот один из способов, который я выяснил, который требует двух поездок:
final OrganizationProxy proxy = context.create(OrganizationProxy.class);
context.persist().using(proxy).fire(new Receiver(){
public void onSuccess(Void response)
{
requestFactory.find(proxy.stableId()).fire(new Receiver()
{
public void onSuccess(OrganizationProxy response)
{
//hey, now response has the server-generated id in it, along with any other values the server populated
}
});
}
});
Но похоже, что должен быть способ получить постоянный идентификатор без второго отключения. Похоже на requestFactory. find () в первую очередь потребуется постоянный идентификатор для работы.
Как я могу получить постоянный идентификатор без второго запроса к серверу?
======= Обновление === ====
Мне наконец пришло в голову (после того, как tbroyer сообщил мне ;)), что я могу вернуть идентификатор Long
из метода persist () в RequestContext. Это не извлекает постоянный идентификатор из EntityProxyId
, но дает мне постоянный идентификатор нового объекта в одном запросе.
Я оставлю этот вопрос открытым - мне все еще интересно в получении постоянного идентификатора из EntityProxyId.