我很难弄清楚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"
感谢您抽出宝贵的时间阅读此内容。任何帮助,我们将不胜感激!
答案 0 :(得分:2)
您似乎正在使用Reference而不是嵌入式实体。模块中的应用程序实际上是对应用程序实体的关键引用。因此,application的值不在Module实体上建立索引。