在GAE数据存储中使用投影查询时,返回null而不是字符串值(Java)
我正在处理GAE数据存储的投影查询 我有一个用例,在这个用例中,我只需要从数据存储中的属性下获取不同的值 看起来投影查询正在工作,但它返回的结果是null,而不是实际值 下面是一段代码:在GAE数据存储中使用投影查询时,返回null而不是字符串值(Java),java,google-app-engine,Java,Google App Engine,我正在处理GAE数据存储的投影查询 我有一个用例,在这个用例中,我只需要从数据存储中的属性下获取不同的值 看起来投影查询正在工作,但它返回的结果是null,而不是实际值 下面是一段代码: Query q = new Query(user.getEmail() + "_" + job); q.addProjection(new PropertyProjection(prop, String.class)); q.setDistinct(true); PreparedQue
Query q = new Query(user.getEmail() + "_" + job);
q.addProjection(new PropertyProjection(prop, String.class));
q.setDistinct(true);
PreparedQuery pq = datast.prepare(q);
String elements[] = new String[1000];
int i=0;
String s="";
for (Entity result : pq.asIterable()) {
elements [i] = (String) result.getProperty("" + prop);
//i++;
s = s + elements[i] + ",";
resp.getWriter().println(elements[i]);
i++;
}
“elements”数组具有不同的计数,但包含“null”而不是实际的字符串值
请从文档中提出建议。: 只能投影索引属性 未编制索引的属性不支持投影, 无论是显式的还是隐式的。(长文本字符串(文本)和长文本 字节字符串(Blob)没有索引)
根据您的描述,该属性似乎没有索引。谢谢@Andrei Volgin,我已经为所有属性编制了索引,但它没有返回值,实际上我得到的是精确的结果计数,即假设一个种类下有3个不同的值,循环正好运行3次,但数组中获取的值包含null。获取投影查询是否存在问题?在为属性编制索引后是否重新保存了所有实体?不,我没有,请您指导整个过程所有属性仅在保存实体时编制索引。因此,如果在保存实体后更改了代码,则需要重新保存该实体,以便索引工作。