我正在使用CassandraTemplate
从Cassandra DB获取数据。我正在尝试使用QueryBuilder
构建查询,这是我正在尝试构建的...
select * from users where token(user, timebucket) > token('222233111',20151231) ;
我跟着this link并做了同样的事情......
Select select = select().all().from("users");
select.where(QueryBuilder.gt(QueryBuilder.token("user","timebucket"), myToken(userId,bucketime)));
users = cassandraOperations.select(select, Users.class);
但我的查询仍然像
一样生成SELECT * FROM users WHERE token(user,timebucket)>'token(222233111, 20151231)';
我收到以下错误,请帮助我如何成功构建我的查询。
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.datastax.driver.core.exceptions.InvalidQueryException: Expected 8 or 0 byte long (26)
private String myToken(String... values) {
StringBuilder sb = new StringBuilder();
sb.append("token(");
for (int i = 0; i < values.length; i++) {
if (i > 0)
sb.append(", ");
sb.append(values[i]);
}
sb.append(")");
return sb.toString();
}