我正在使用Google App Engine中的servlet。该servlet从GAE的数据存储中检索数据;在查询“SELECT * FROM ...”时一切正常。但是当我想通过某个列过滤它时,它不起作用,因为列的名称有一个爆炸性的。它如下所示:
Query query = new Query("tableName");
query.addFilter("col-name", Query.FilterOperator.EQUAL, filterValue);
如何使用连字符传递propertyName?
答案 0 :(得分:2)
AppEngine数据存储区没有行或列;它有模型和属性。
Defining Data Classes谈到定义你的模型;需要注意的重要一点是标识符名称的Java规则很重要,因为模型的每个属性在某些时候都会变成具有相同名称的java对象。
你自己已经描述过了:
如果我按照名为的列过滤 “field-1”,这是我的尝试 从每个返回的中减去1 名为field
的列的值
答案 1 :(得分:1)
java只接受美元符号“$”的字母和数字,或下划线字符“_”,如合法标识符。 所以我相信那是不可能的。也没有在python中工作
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/variables.html#naming
答案 2 :(得分:0)
addFilter方法是否正确用单引号括起列名?您可能想尝试自己添加它们。可以使用GQL中数据库中不是键的东西进行过滤,这可能是您所期望的。