GWT RequestFactory: Как я могу получить постоянный идентификатор из stableId ()?

Я использую 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.

8
задан Riley Lark 20 February 2011 в 23:14
поделиться