GWT Requestfactory локатор сущностей не работает с Objectify, когда сущность имеет длинный идентификатор - PullRequest
0 голосов
/ 17 марта 2012

Мое приложение GWT + GAE использует локатор сущностей Requestfactroy, и на стороне сервера я использую Objectify, он работает хорошо, когда мой тип идентификатора сущности равен String, теперь я хочу изменить его на Long id и застрял: используя подпись локатора i не могу найти сущность:

 @Override
    public T find( Class<? extends T> clazz, Long id )
    {
    }

Поскольку для Objectify требуется ключ @Parent, включенный для выборки дочерних объектов (HRD), и из вышеприведенного метода мы не можем получить родительский объект. Я нашел эту тему на форуме GWT: здесь

Однако этот поток, похоже, не дал никаких конструктивных предложений (в конечном итоге он прибегает к String ID Entity для решения).

Большое спасибо.

1 Ответ

1 голос
/ 17 марта 2012

Проблема в том, что длинного идентификатора недостаточно для идентификации вашего объекта. Как вы говорите, вам также нужен его родитель, поэтому идентификатор на самом деле является составным идентификатором: родительским объектом и идентификатором ребенка.

Кстати, в чем проблема с использованием keyToString или аналогичного здесь? (как указано в теме, на которую вы ссылаетесь)
Идентификатор из Locator используется только на стороне сервера и только для локатора (и сериализован как есть для передачи назад и вперед клиенту; но это непрозрачные вещи на стороне клиента, которые вам даже не предоставлены).

...