2016-10-19 42 views
1

我正在使用GAE數據存儲的投影查詢。在GAE數據存儲中使用投影查詢時,返回null而不是字符串值(Java)

我有一個用例,我只需要從數據存儲中的某個屬性下只讀取不同的值。

似乎投影查詢正在工作,但它返回結果爲空而不是實際值。

以下是一段代碼:

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++; 
     } 

在「元件」陣列具有裏邊反重複計數,但包含代替實際字符串值「空」。

請指教。

回答

1

從文檔:

只有索引屬性可以投射。

對於未編制索引的屬性, 不支持投影,無論是顯式還是隱式。 (長文本字符串(Text)和長字節字符串(Blob)沒有編入索引)。

從你描述的看來,這個屬性沒有索引。

+0

謝謝@Andrei Volgin,我索引了所有的屬性,但它沒有返回值,實際上我得到了確切的結果計數,即假設在一種下有3個不同的值,循環正好運行3次,但數組中獲取的值包含null。獲取投影查詢是否存在問題? –

+0

您是否在索引屬性後重新保存所有實體? –

+0

不,我沒有,請你指導整個過程 –

相關問題