lam*_*dar 4 java cassandra nosql datastax
使用cassandra对象映射器api想要进行批处理持久化.
对于单个对象,它工作正常.
Mapper<MyObj> mapper = new MappingManager(getSession()).mapper(MyObj.class);
mapper.save(myObj);
Run Code Online (Sandbox Code Playgroud)
对于批量更新我试过这种方式,但理想情况下Cassandra认为我持久化列表所以它给出了异常,就像在List中找不到@Table注释,这是预期的行为
Mapper<List<MyObj>> mapper = new MappingManager(getSession()).mapper(List.class);
myObjList.add(myObj1)
myObjList.addd(myObj2)
mapper.save(myObjList);
Run Code Online (Sandbox Code Playgroud)
有没有办法在使用批处理的cassandra中实现相同的功能?
注意:或者我可以通过使用for循环重复第一步来完成此操作,但我正在寻找批量插入@ObjectMapper.
以下是我想在上面的主题中总结@adutra讨论的片段.
你可以利用随附cassandra-core驱动程序的BatchStatement,它与cassandra-mapper非常兼容.
Mapper<MyObj> mapper = new MappingManager(getSession()).mapper(MyObj.class);
BatchStatement batch = new BatchStatement();
batch.add(mapper.saveQuery(myObj1));
batch.add(mapper.saveQuery(myObj2));
session.execute(batch);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2762 次 |
| 最近记录: |