如何使用CassandraRepository与Spring Data Cassandra和Spring Boot查询Cassandra?

时间:2016-12-29 09:58:43

标签: spring spring-boot spring-data spring-data-cassandra

我在使用这些命令构建的Cassandra集群中有一个表:

CREATE KEYSPACE IF NOT EXISTS activitylogs WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

CREATE TABLE IF NOT EXISTS activitylogs.activities2 (
    activity_id timeuuid,
    actor_id text,
    app_id text,
    item_id text,
    viewer_id text,
    activity_type int,
    ts timestamp,
    PRIMARY KEY (actor_id, activity_id, app_id)
) WITH CLUSTERING ORDER BY (activity_id DESC, app_id ASC);

这就是我在Spring Project中的Repository的样子:

public interface ActivityRepository extends CassandraRepository<Activity> {

@Query("SELECT actor_id FROM activities2 WHERE actor_id='actorA'")
Iterable<Activity> findByActor_Id(String actor_Id);
}

现在,当我访问与此查询检索器关联的端点时,出现以下错误:

Invalid null value in condition for column actor_id
at com.datastax.driver.core.Responses$Error.asException(Responses.java:136)

但是,当我在CQLSHell中运行等效的CQL命令时,我得到了我正在寻找的确切行...

为什么会这样?

1 个答案:

答案 0 :(得分:0)

为SpringBoot应用程序编写控制器时出错。

正确的控制者是:

if(navigator.appVersion.indexOf("MSIE 9.") !== -1)

早期的实现(在编写问题时)没有@PathVariable注释因此,控制器没有将任何值传递给存储库接口函数。