java - GQL 不允许文字错误,谷歌数据存储

标签 java google-app-engine google-cloud-datastore gcloud-java

我正在尝试使用 GQL 从数据存储中取回一些数据。

当我执行 SELECT * FROM Kind 请求时,它有效并且我得到了数据。

但是当我尝试时:

SELECT * FROM kind where num < 1234

我收到不允许的文字错误。

我什至尝试用引号来做到这一点:

SELECT * FROM kind where num < '1234'

但我得到了同样的错误。

有人遇到过这个吗?

代码如下:

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"));

最佳答案

您需要绑定(bind)查询参数,而不是直接将其添加到查询中。

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"));
...

关于java - GQL 不允许文字错误,谷歌数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37837605/

相关文章:

java - 尝试通过 liquibase、postgresql、spring boot 创建新数据库。结果-> "databasechangelog"不存在

java - JRE 系统库与服务器运行时

python - 将大量 XML 数据导入 Google App Engine

java - 如何在谷歌应用程序引擎中将值从action传递到jsp?

java - RMI 注册表过滤器拒绝 java 8 update 121 中的 Rmi 配置类

java - Apache 服务器作为 Jboss 问题的代理

python - google app engine 将大数据放入数据存储区的有效方法

java - Google App Engine (Eclipse) 仍支持 AppWrench 吗?

python - 如何强制 'create_bulkloader_config' 获取最新的架构/数据?

google-app-engine - GAE 数据存储查看器中的 utf8 错误(Go 运行时)