N1QL查询无法识别参数

时间:2017-07-26 18:23:17

标签: n1ql couchbase-java-api

我正在尝试使用参数化的N1QL查询,但它没有识别json占位符并且抛出了错误的语法异常。

代码:

public static final String LMR_DETAILS 
    = "SELECT * FROM $bucketName WHERE lmr.lmrStatusDescriptionTe ='PENDING'and STR_TO_MILLIS(lmr.recordExpirationTs) BETWEEN STR_TO_MILLIS($startTime) AND STR_TO_MILLIS($endTime)";

String bucketName = bucket.bucketManager().info().name();
                    JsonObject placeHolders = JsonObject.create().put("bucketName", bucketName).put("startTime", reqDates[0]).put("endTime", reqDates[1]);
                    N1qlQuery query = N1qlQuery.parameterized(QueryString.LMR_DETAILS, placeHolders);
                    N1qlQueryResult result = bucket.query(query);

1 个答案:

答案 0 :(得分:0)

FROM子句要求作为静态标识符引用桶或子查询,它不能是参数化变量。将$ bucketName作为参数化变量删除,并通过动态构造LMR_DETAILS替换为实际存储桶名称。