【发布时间】:2017-06-19 15:07:34
【问题描述】:
我正在尝试在 cassandra 数据库上执行 SELECT,使用 datastax 驱动程序 在 Java 应用程序。
我已经开发了简单的查询:
@Repository
public class CustomTaskRepository
extends AbstractCassandraRepository<CustomTask> {
@Accessor
interface ProfileAccessor {
@Query("SELECT * FROM tasks where status = :status")
Result<CustomTask> getByStatus(@Param("status") String status);
}
public List<CustomTask> getByStatus(String status) {
ProfileAccessor accessor = this.mappingManager.createAccessor(ProfileAccessor.class);
Result<CustomTask> tasks = accessor.getByStatus(status);
return tasks.all();
}
}
这很好用。
我现在遇到的问题是我想为多个状态执行 SELECT 语句。例如,我想对一个、两个...或多个状态代码(待处理、工作、已完成等)执行查询。
我如何创建一个@Query 语句以灵活地接受一个或多个状态代码?
提前致谢!!!
编辑:表创建语句是:
CREATE TABLE tasks(
"reservation_id" varchar,
"task_id" UUID,
"status" varchar,
"asignee" varchar,
PRIMARY KEY((reservation_id),task_id)
)
WITH compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'} ;
CREATE INDEX taskid_index ON tasks( task_id );
CREATE INDEX asignee_index ON tasks( asignee );
【问题讨论】: