Datastax Cassandra CQL驱动程序中包含collection in子句的准备语句

Datastax Cassandra CQL驱动程序中包含collection in子句的准备语句,cassandra,cql,cql3,datastax-enterprise,datastax-java-driver,Cassandra,Cql,Cql3,Datastax Enterprise,Datastax Java Driver,我正在尝试运行以下查询 SELECT edge_id, b_id FROM booking_by_edge WHERE edge_id IN ? 我绑定Java长列表作为参数,得到一个异常 SyntaxError: line 0:-1 mismatched input '<EOF>' expecting ')' (ResultSetFuture.java:242) SyntaxError:第0行:-1个不匹配的输入“应为”)(ResultSetFuture.java:242)

我正在尝试运行以下查询

SELECT edge_id, b_id FROM booking_by_edge WHERE edge_id IN ?
我绑定Java长列表作为参数,得到一个异常

SyntaxError: line 0:-1 mismatched input '<EOF>' expecting ')' (ResultSetFuture.java:242)
SyntaxError:第0行:-1个不匹配的输入“应为”)(ResultSetFuture.java:242)
如果我尝试使用(?),它希望绑定单个长项,但我需要一个集合


我的语法有错误吗?

在Datastax bugzilla上得到响应,目前不支持,但已计划好响应


更新:在Cassandra 2.0.1中受支持,在Cassandra 2.1.3中测试,以下代码段有效:

PreparedStatement prepared = session.prepare("SELECT edge_id, b_id FROM booking_by_edge WHERE edge_id IN ?;");
List<Long> edgeIds = Arrays.asList(1L, 2L, 3L);
session.execute(prepared.bind(edgeIds));
PreparedStatement prepared=session.prepare(“从预订中选择边缘标识,其中边缘标识位于?;”);
List edgeIds=Arrays.asList(1L、2L、3L);
session.execute(prepared.bind(edgeIds));

在文档中很难找到,但在中有描述

如果要使用命名参数,应使用setList()方法


你能告诉我现在是否解决了吗?我不能完全从链接中得到这个想法。
BoundStatement bs = session.prepare("select col from table where col in :values").bind();
bs.setList("values", Arrays.asList(v1, v2, v3));