Запросы к хранилищу данных GCP по ссылкам на вложенные объекты (entityB.name) - PullRequest
0 голосов
/ 05 августа 2020

Мне сложно определить, поддерживает ли GCP Datastore запросы вложенных свойств объекта.

Мой вариант использования сейчас выглядит следующим образом: *enter image description here

Application

enter image description here

@Entity
class Module {
  Long id;

  @Reference
  Applicaiton application;
}
@Entity
class Application {
  Long id;
  String name;
}

Я хочу попробовать запросить модуль на основе его вложенного Application имени. Я безуспешно пытался предоставить такой фильтр:

Query<? extends BaseEntity> query = Query.newEntityQueryBuilder()
    .setKind("module") 
    .setFilter(PropertyFilter.eq("application.name", "UserApp"))
    .build();

Я использую абстракцию хранилища данных Springs GCP через их шаблон DatastoreTemplate, но это не похоже на то, что когда я пытаюсь запустить GQL на GCP console Я тоже не получаю никаких результатов.

SELECT * FROM module WHERE application.name = "UserApp"

Спасибо, что нашли время прочитать это. Любая помощь с этим приветствуется!

1 Ответ

0 голосов
/ 07 августа 2020

Похоже, вы используете Ссылку , а не встроенную сущность. Модуль Application in действительно является ключевой ссылкой на объект Application. Таким образом, значения приложения не индексируются в сущности Module.

...