4

我正在使用 Google App Engine 中的 servlet。这个 servlet 从 GAE 的数据存储中检索数据;像“SELECT * FROM ...”这样的查询时一切正常。但是当我想按某个列过滤它时,它不起作用,因为该列的名称有一个连字符。如下所示:

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

如何使用连字符传递 propertyName?

4

3 回答 3

1

AppEngine 数据存储区没有行或列;它有模型和属性。

定义数据类讨论定义模型;需要注意的重要一点是标识符名称的 Java 规则很重要,因为模型的每个属性在某些时候都会转换为具有相同名称的 Java 对象。

您自己对此进行了描述:

如果我按名为“field-1”的列进行过滤,那么我试图从名为 field 的列的每个返回值中减去 1

于 2009-12-30T21:27:20.330 回答
1

java 只接受字母和数字,美元符号“$”,或下划线字符“_”,如合法标识符。所以我认为这是不可能的。也没有在python中工作

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/variables.html#naming

于 2009-12-28T20:42:32.813 回答
0

addFilter 方法是否正确地将列名括在单引号中?您可能想尝试自己添加它们。可以根据 GQL 中数据库中不是键的内容进行过滤,因此这可能是您所期望的。

于 2009-12-30T02:16:35.683 回答