Cassandra Spring mvc - 如何传递价值

时间:2015-07-07 09:23:50

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

我试试这个并且工作正常。

@Autowired

private CassandraOperations cassandraOperations;

in my method
{
  String cqlAll = "select * from customer where cust_id=123";

  List<Customer> results = cassandraOperations.select(cqlAll, Customer.class);  
  for (Customer p : results) 
  {
    System.out.println(p.getCust_id() + "-"+p.getCust_name()+"-"+p.getCust_password());
  }
}

但我想将值传递给字符串,以便我可以单独编写查询文件。 像这样的东西,

String cqlAll = "select * from customer where cust_id=?";

objects[] obj = {123};

List<Customer> results = cassandraOperations.select(cqlAll, obj ,Customer.class);

for (Customer p : results) 
{
System.out.println(p.getCust_id() + "-"+p.getCust_name()+"-"+
  p.getCust_password());
}

1 个答案:

答案 0 :(得分:0)

我可以使用CassandraOperation构建

com.datastax.driver.core.querybuilder.Select select方法,我可以从spring data cassandra documentation看到。

我对spring数据cassandra没有多少经验,因为我们直接使用datastax java驱动程序,但这应该适用于 select

final Select select = QueryBuilder.select().all().from("customer")
            .where(QueryBuilder.eq("cust_id", 123)).limit(200);
cassandraOperations.select(select ,Customer.class);

123可以是从对象中提取的任何动态值。

更新可以使用CqlOperations完成:

CqlOperations cqlOperations = new CqlOperations(); //or autowire it
final Statement update = QueryBuilder.update("customer")
                .with(QueryBuilder.set("email", "example@example.com"))
                .where(QueryBuilder.eq("cust_id", 123));
cqlOperations.execute(update);

可以找到更多QueryBuilder个例子here