Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在GAE数据存储中使用投影查询时,返回null而不是字符串值(Java)_Java_Google App Engine - Fatal编程技术网

在GAE数据存储中使用投影查询时,返回null而不是字符串值(Java)

在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

我正在处理GAE数据存储的投影查询

我有一个用例,在这个用例中,我只需要从数据存储中的属性下获取不同的值

看起来投影查询正在工作,但它返回的结果是null,而不是实际值

下面是一段代码:

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。获取投影查询是否存在问题?在为属性编制索引后是否重新保存了所有实体?不,我没有,请您指导整个过程所有属性仅在保存实体时编制索引。因此,如果在保存实体后更改了代码,则需要重新保存该实体,以便索引工作。