Google app engine 未创建对象化索引
我尝试在google应用程序引擎standart环境中使用objectify并得到异常。我的课程是这样的:Google app engine 未创建对象化索引,google-app-engine,google-cloud-platform,objectify,Google App Engine,Google Cloud Platform,Objectify,我尝试在google应用程序引擎standart环境中使用objectify并得到异常。我的课程是这样的: @Entity public class Company { @Id Long id; @Index String companyName; public Company() { } public Company(Long id, String companyName) { this.id=id; this.com
@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
}
}
没有订单(“projectName”)查询就可以正常工作。从数据存储中删除了所有此类实体,然后添加了新实体,但仍会得到此异常。如果这很重要,我用的是Gradle,而不是Maven。创建索引或smth可能需要额外的构建步骤。您正在对多个属性进行筛选(好吧,祖先计算为“另一个属性”),因此您需要在
datastore index.xml
中定义多属性索引
请参阅官方文档:可能的副本
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