如何在Spring数据Cassandra中使用IN子句

时间:2016-07-11 12:51:53

标签: java cassandra spring-data datastax-java-driver spring-data-cassandra

我尝试使用IN子句和Spring Data中的@Query注释查询Cassandra表

我在init方法中的查询 -

     session = cassandraSessionFactory.getSession();
     statementmyList = session.prepare("select * from my_file_content where my_content IN (?);");

尝试使用boundStatement绑定查询 -

  final BoundStatement boundStatement = DaoConstants.getBoundStatement(statementmyList);

  try
  {
   List<Row> rowList =
      session
          .execute(
              boundStatement
                  .bind(myList))
          .all();

          // myList = "'04748558-0eb3','531aaf2bf6b782f95e2e','6fc98ac2'"     

}

rowList返回空数组。我在这做错了什么?

1 个答案:

答案 0 :(得分:0)

问题是,如果要绑定完整列表,则不需要括号,所以它应该是:

session = cassandraSessionFactory.getSession();
statementmyList = session.prepare("select * from my_file_content where my_content IN ?;");
如果您提供单个值,则

(?)会有效,但如果您要提供集合,则需要?