A B*_* Ba 5 java google-app-engine google-cloud-datastore gcloud-java
我正在尝试使用GQL从数据存储区中获取一些数据.
当我SELECT * FROM Kind提出请求时,它可以正常工作,我会收到数据.
但是,当我尝试:
SELECT * FROM kind where num < 1234
Run Code Online (Sandbox Code Playgroud)
我得到一个不允许的字面错误.
我甚至尝试用引号做到这一点:
SELECT * FROM kind where num < '1234'
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的错误.
有没有人遇到过这个?
这是代码:
Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,
"SELECT * FROM " + kind + " WHERE num < '100'"
).build();
QueryResults<Entity> results = datastore.run(query);
while (results.hasNext()) {
Entity result = results.next();
myList.add(result.getString("num"));
Run Code Online (Sandbox Code Playgroud)
您需要绑定查询参数而不是直接将其添加到查询中。
Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,
"SELECT * FROM " + kind + " WHERE num < @num")
.setBinding("num", 100)
.build();
QueryResults<Entity> results = datastore.run(query);
while (results.hasNext()) {
Entity result = results.next();
myList.add(result.getString("num"));
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |