Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带数值的Couchbase参数化查询_Java_Couchbase_Couchbase Java Api - Fatal编程技术网

Java 带数值的Couchbase参数化查询

Java 带数值的Couchbase参数化查询,java,couchbase,couchbase-java-api,Java,Couchbase,Couchbase Java Api,我试图向参数化的AnalyticsQuery添加数值,但在查询运行时不断出错。创建查询的java代码如下所示: private ParameterizedAnalyticsQuery aggregateQuery(String userId, Long from, Long to) { return AnalyticsQuery.parameterized( "select d.field1," + " d.field2"

我试图向参数化的
AnalyticsQuery
添加数值,但在查询运行时不断出错。创建查询的java代码如下所示:

  private ParameterizedAnalyticsQuery aggregateQuery(String userId, Long from, Long to) {
    return AnalyticsQuery.parameterized(
        "select d.field1,"
            + " d.field2"
            + " from data d"
            + " where d.userId = $userId"
            + " and d.timestamp between $from and $to",
        JsonObject.create()
            .put("userId", userId)
            .put("from", from)
            .put("to", to)
    );
  }
运行查询时,返回以下错误:

<< Encountered \"from\" at column 213. ","code":24000}]

为什么参数不是字符串时会出现问题?有没有办法使用带有数值的参数化查询?

FROM和to是N1QL中用于分析的保留关键字,因此当用作参数名称时必须放在反引号中:

... and d.timestamp between $`from` and $`to`
有关所有保留关键字的列表,请参阅:

我也在.NET中尝试过这个。我的猜测是,/和之间要么不能被参数化(目前),要么有一个bug。我自己正在尝试,我会尽快回复你。我没有注意到(无论如何在.NET中)我必须使用一个命名参数“$from”,而不仅仅是“from”。
... and d.timestamp between $`from` and $`to`