Cassandra 3.x 到 4.x 驱动差异

Cassandra 3.x to 4.x driver differences

谁能告诉我如何将这个旧注释从 Datastax 3.x 系列驱动程序复制到新的 4.x 系列:

@Table(
        name = "mytable",
        readConsistency = "LOCAL_ONE",
        writeConsistency = "LOCAL_QUORUM")

我记下了名字:@CqlName("mytable"),只是不一致。

我们在代码中专门使用映射器 - 它们速度很快,并且在 3.x 驱动程序中为您做了很多样板文件。在 4.x 中,没有那么多而且令人沮丧。有些我们依赖的东西我就是想不通 - 就像这样。

另外(不同的问题,但我会在这里问)。我可以在会话中设置配置文件吗?也在为那个而苦苦挣扎。

driver upgrade guide says:

the "mapper" and "accessor" concepts have been unified into a single "DAO" component, that handles both pre-defined CRUD patterns, and user-provided queries.

在您的情况下,您要从 @Table 切换到 @Entity,如下所示:

@Entity
@CqlName("mytable")
class MyPojoClass {

}

然后你定义 Dao class 在这里定义单独的操作,比如,insert/delete/select:

@Dao
public interface ProductDao {

  @Select
  MyPojoClass findBySomething();

  @Insert
  void save(MyPojoClass cls);

  @Delete
  void delete(MyPojoClass cls);
}

这些操作可以使用 @StatementAttributes 注释进行注释,该注释具有 consistencyLevel, executionProfileName 和许多其他属性。

P.S。对我来说,新 Mapper 的一大改进是您可以在同一会话中使用具有多个键空间和表的同一实体 class...