【发布时间】:2018-11-12 19:51:37
【问题描述】:
在旧版本的 Spring Data Cassandra 中,批处理实现如下:
String cqlIngest = "insert into person (id, name, age) values (?, ?, ?)";
List<Object> person1 = new ArrayList<Object>();
person1.add("10000");
person1.add("David");
person1.add(40);
List<Object> person2 = new ArrayList<Object>();
person2.add("10001");
person2.add("Roger");
person2.add(65);
List<List<?>> people = new ArrayList<List<?>>();
people.add(person1);
people.add(person2);
cassandraOperations.ingest(cqlIngest, people);
并且在最新版本的文档中; https://docs.spring.io/spring-data/cassandra/docs/current/reference/html/#repositories.query-methods 在获取 CassandraBatchOperations 的 CQLTemplate 上引入了 batchOps。但是这个类似乎是实体意识如下
template.batchOps().insert(new User()).execute();
有没有办法传递 cqlIngest 和人们喜欢的旧版本代码示例?
我正在使用 Spring 2.0.7.RELEASE 和 Cassandra 驱动程序 3.5.0。
【问题讨论】:
-
在您的示例中,您正在对不同的分区键进行批处理(据我了解代码)。这是不好的做法 - 2 个异步调用应该更快地执行
-
是的,亚历克斯,没错。以上只是我挑选的一个例子。
标签: java spring spring-data-cassandra