Cassandra对象映射API当前是否不支持更新?
我正在使用与Cassandra 2.1一起使用的。在API中,通过执行以下步骤,似乎执行了一行的更新:Cassandra对象映射API当前是否不支持更新?,cassandra,datastax,datastax-java-driver,Cassandra,Datastax,Datastax Java Driver,我正在使用与Cassandra 2.1一起使用的。在API中,通过执行以下步骤,似乎执行了一行的更新: 获取对象(Mapper.get) 更改要更新的字段 保存对象(Mapper.save) 这将转换为一个选择,然后是一个插入。现有的CQL3.1UPDATE语句是否会在稍后的Cassandra对象映射API中支持部分更新?我想避免最初的阅读 您可以使用访问器对更新进行编码 透明savevsupdate需要使用代理和字段拦截器(复杂impl),或者导致在保存反模式之前实际隐藏读取 使用访问器应该能
访问器
对更新进行编码save
vsupdate
需要使用代理和字段拦截器(复杂impl),或者导致在保存反模式之前实际隐藏读取mapper.updateValue(id, Entity.class, propertyName, value);
/** Append value to the Set, List or Map. */
append(id, Entity.class, propertyName, value);
此外,它还具有datastax mapper中缺少的自动模式同步功能(以及其他一些功能)
使用示例:
Entity entity = new Entity();
mappingSession.save(entity);
entity = mappingSession.get(Entity.class, id);
mappingSession.delete(entity);
在maven central上提供:
<dependency>
<groupId>com.valchkou.datastax</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
</dependency>
com.valchkou.datasax
卡桑德拉驱动映射
谢谢Alex,我会看着Jira看看你们有什么想法。我猜访问器
几乎与编写自己的CQL语句(非常灵活)相同。访问器
语法的一个问题是静态定义要更新的列是否正确?示例:@Query(“UPDATE users SET first\u name=:first,last\u name=:last,其中id=:id”)
据我所知,我总是需要同时更新first
和last
。