说我有以下CQL3查询:
QueryString = "SELECT id1, id2, link_type, visibility, data, time, version from keyspace.table where id1 = id1 and link_type = link_type and id2 **IN id2s** and time>= minTime and time<= maxTime ORDER BY time desc limit= rowLimit;"
Statement = new Statement (QueryString)
我会收到此错误(因为id2s中的括号:列表):输入'['(...和link_type = 123456789和...)没有可行的选择 [id2] IN ...)
---&GT;我应该如何将List<Long> id2s
转换为没有括号但带括号的列表:(item1,item2,item3)
PreparedStatement prepared = session.prepare(query);
第一个错误已解决,但我得到了另一个错误:
无法对ORDER BY和IN限制进行页面查询 分区键;你必须删除ORDER BY或IN并排序 客户端,或禁用此查询的分页
----&GT;我应该如何使用Prepared语句关闭分页(我只找到了带有简单语句的解决方案:statement.setfetchSize(),但没有使用Prepared Solution)
如果我使用一个简单的语句,我会遇到Brackets /括号的问题,如果我使用预准备语句来解决最后一个问题,我会遇到分页问题。
有什么想法吗?
答案 0 :(得分:0)
在Java中,您可以通过以下代码关闭cassandra分页
Statement statement = new SimpleStatement(query);
statement.setFetchSize(Integer.MAX_VALUE);
执行声明。
session.execute(statement);
它应该可以正常工作