GWT Requestfactory локатор сущностей не работает с Objectify, когда сущность имеет длинный идентификатор
Мое приложение GWT+GAE использует локатор сущностей Requestfactroy, и на стороне сервера я использую Objectify, он хорошо работает, когда мой тип идентификатора сущности - String, теперь я хочу изменить на Long id и застрял: с помощью подписи локатора я не могу найти лицо:
@Override
public T find( Class<? extends T> clazz, Long id )
{
}
Поскольку для Objectify требуется ключ @Parent, включенный для выборки дочерних объектов (HRD), и из вышеприведенного метода мы не можем получить родительский объект. Я нашел эту тему на форуме GWT: здесь
Однако этот поток, похоже, не дал никаких конструктивных предложений (в конце концов он прибегает к String ID Entity для решения).
Большое спасибо.
1 ответ
Проблема в том, что длинного идентификатора недостаточно для идентификации вашего объекта. Как вы говорите, вам также нужен его родитель, поэтому идентификатор на самом деле является составным идентификатором: родительским объектом и идентификатором ребенка.
Кстати, в чем проблема с использованием keyToString
или подобное здесь? (как указано в теме, на которую вы ссылаетесь)
Идентификатор от Locator
используется только на стороне сервера и только локатором (и сериализуется как есть для передачи туда и обратно к клиенту и обратно; но на стороне клиента это непрозрачные вещи, которые вам даже не дают доступ).