如何解决如何在AndroidJava中的自定义Couchbase Lite插件中使用查询限制
我正在为Ionic Capacitor开发自定义插件Couchbase Lite。我正在使用Android版本,但无法获得查询限制。 limit参数是可选的,因此我检查它是否为null。如果不为null,则要将限制附加到现有查询变量。但是我收到“无法在“查询”中解析方法“限制”的错误”的错误。我有什么办法可以不用编写两个查询构建器而一个有限制而另一个没有限制吗?
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);
}
解决方法
您可以在将限制转换为((From)查询).limit(Expression.intValue(limit))之前将查询强制转换为From对象。
,@Pasin的答案简单而正确。但是,如果您希望避免强制转换,则可以执行以下操作:
From 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();
`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。