0

我无法确定 GCP 数据存储区是否支持查询实体的嵌套属性。

我现在的用例是这样的:

Module
  -> Application

模块

在此处输入图像描述

应用

在此处输入图像描述

@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();

我正在通过他们的 DatastoreTemplate 使用 Springs GCP 数据存储抽象,但这似乎并不相关,因为当我尝试在 GCP 控制台上运行 GQL 时,我也没有得到任何结果。

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

感谢您花时间阅读本文。非常感谢您对此的任何帮助!

4

1 回答 1

2

看起来您使用的是参考而不是嵌入式实体。模块中的应用程序实际上是对应用程序实体的关键引用。因此,应用程序的值不是模块实体上的索引。

于 2020-08-07T15:59:59.360 回答