Объективить - Заказать по ссылке - PullRequest
1 голос
/ 25 февраля 2020

возможно ли в Objectify для заказа по полю ссылочного объекта?

Пример:

public class Foo {
    @Id private long id;
    @Index Ref<AnObject> ref;
}

public class AnObject {{
    @Id private long id;
    @Index name;
}

Затем я пытаюсь выполнить этот запрос, и он не работает:

Query<Foo> query =  ofy().load().type(Foo.class)
        .limit(Constants.DATASTORE_LIMIT)
        .order("ref.name");

Спасибо.

1 Ответ

1 голос
/ 25 февраля 2020

Боюсь, что нет. Это не то, что поддерживается хранилищем данных. Он не может выполнять объединения.

Существует два основных способа обойти это ограничение:

  1. Денормализовать и поместить индексированную копию данных name в объект Foo , Вы можете сделать это несколько автоматически с помощью метода @OnSave. Недостатком является то, что вам нужно помнить, чтобы обновлять данные в обоих местах, если они меняются.

  2. Выполните работу планировщика запросов самостоятельно. Запросите соответствующие AnObjects, затем запросите соответствующие Foos.

...