Cassandra对象映射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),或者导致在保存反模式之前实际隐藏读取 使用访问器应该能

我正在使用与Cassandra 2.1一起使用的。在API中,通过执行以下步骤,似乎执行了一行的更新:

  • 获取对象(Mapper.get)
  • 更改要更新的字段
  • 保存对象(Mapper.save)
  • 这将转换为一个选择,然后是一个插入。现有的CQL3.1UPDATE语句是否会在稍后的Cassandra对象映射API中支持部分更新?我想避免最初的阅读

  • 您可以使用
    访问器
    对更新进行编码

  • 透明
    save
    vs
    update
    需要使用代理和字段拦截器(复杂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