我正在为离子电容器开发一个定制插件couchbase lite。我现在正在开发android版本,我无法让查询限制生效。limit参数是可选的,所以我检查它是否为null。如果不为null,我想将限制附加到现有的查询变量。但我得到的错误是“无法解析'query'中的'limit'方法”。有没有办法不用编写两个查询生成器,一个有限制,另一个没有限制?
try {
String dbName = call.getString("dbName");
Integer limit = call.getInt("limit");
Query query = QueryBuilder
.select(
SelectResult.expression(Meta.id),
SelectResult.property("title")
)
.from(DataSource.database(databases.get(dbName)))
if (limit != null){
query.limit(Expression.intValue(limit));
}
ResultSet resultSet = query.execute();
JSONArray array = new JSONArray();
for (Result result : resultSet) {
array.put(new JSONObject(result.toMap()));
}
JSObject ret = new JSObject();
ret.put("result", true);
ret.put("rows", array);
call.success(ret);
} catch (final Exception e) {
call.reject("Error documents ", e);
}
2条答案
按热度按时间3df52oht1#
在将限制作为((from)query.limit(expression.intvalue(limit))执行之前,可以将查询强制转换为from对象。
eeq64g8w2#
@帕辛的回答简单而正确。但是,如果您不想使用铸造,可以这样做:`
`