0

私はこれを試してみて、うまくいきます。

@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());
}
4

1 に答える 1

0

CassandraOperationspring data cassandra documentationcom.datastax.driver.core.querybuilder.Selectからわかるように、select メソッドは でビルドすることもできます。

datastax Javaドライバーを直接操作するため、Spring Data cassandraの経験はあまりありませんが、これは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で見つけることができます。

于 2015-07-08T06:54:42.060 に答える