【发布时间】:2018-06-25 02:41:08
【问题描述】:
我尝试在 google app engine 标准环境中使用 objectify 并获得异常。我的课程如下所示:
@Entity
public class Company {
@Id Long id;
@Index String companyName;
public Company() {
}
public Company(Long id, String companyName) {
this.id=id;
this.companyName = companyName;
}
}
@Entity
public class CompanyProject {
@Id Long id;
@Index String projectName;
@Parent Key<Company> owner;
public String cost;
public CompanyProject() {
}
public CompanyProject(long userId, String projectName) {
this();
this.projectName = projectName;
owner = Key.create(Company.class, userId); // Creating the Ancestor key
}
}
当我这样查询数据时:
Key<Company> theUser = Key.create(Company.class, 1);
Iterable<CompanyProject> projects = ObjectifyService.ofy().load().type(CompanyProject.class).ancestor(theUser).order("projectName").list();
我得到异常
com.google.cloud.datastore.DatastoreException: no matching index found. recommended index is:
- kind: CompanyProject
ancestor: yes
properties:
- name: projectName
没有 order("projectName") 查询工作得很好。从数据存储中删除所有此类实体,而不是添加新实体,仍然会出现此异常。如果这很重要,我使用 Gradle,而不是 Maven。也许应该是额外的构建步骤来创建索引或smth。
【问题讨论】:
标签: google-app-engine google-cloud-platform objectify