2009-12-24 34 views
4

我正在使用Google App Engine中的servlet。這個servlet從GAE的數據存儲中檢索數據;當查詢「SELECT * FROM ...」時,一切正常。但是當我想要按某個列過濾它時,它不起作用,因爲該列的名稱有一個hypen。它類似於以下內容:AppEngine:查詢名稱中帶有連字符的列的數據存儲

Query query = new Query("tableName"); 
query.addFilter("col-name", Query.FilterOperator.EQUAL, filterValue); 

如何將連字符傳遞給propertyName?

+0

這應該很好 - 當你嘗試時會發生什麼? – 2009-12-24 19:11:01

+1

它不返回任何行。例如,如果我通過一個名爲「field-1」的列進行過濾,那就是我試圖從名爲field的列的每個返回值中減去1 ... – Pablo 2009-12-26 10:29:06

+0

如果在原始過濾器中執行過濾,會發生什麼情況Gql調用? – 2009-12-28 12:02:12

回答

0

是對addFilter方法正確地封閉在單引號中列名?你可能想嘗試自己添加它們。可以通過GQL中的數據庫中的關鍵字進行過濾,因此這可能是您期望的。

+0

單引號不起作用,對不起 – Pablo 2009-12-31 12:12:37

+0

太糟糕了,祝你好運發現問題的根源。 – Clueless 2010-01-01 00:08:28

2

AppEngine數據存儲沒有行或列;它有模型和屬性。

Defining Data Classes談論定義你的模型;要注意的重要一點是標識符名稱的Java規則很重要,因爲模型的每個屬性在某個時刻都會變成具有相同名稱的Java對象。

你這樣描述自己:

,如果我用一個柱過濾稱爲 「字段1」,這是樣的,我試圖 從每減1返回的列 值所謂的字段

相關問題