2

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

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

我记下了这个名字:@CqlName("mytable"),只是没有一致性。

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

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

4

1 回答 1

3

正如驱动程序升级指南所说

“映射器”和“访问器”概念已统一为一个“DAO”组件,该组件处理预定义的 CRUD 模式和用户提供的查询。

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

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

}

然后定义Dao 类,在其中定义单独的操作,例如插入/删除/选择:

@Dao
public interface ProductDao {

  @Select
  MyPojoClass findBySomething();

  @Insert
  void save(MyPojoClass cls);

  @Delete
  void delete(MyPojoClass cls);
}

这些操作可以用@StatementAttributes具有consistencyLevelexecutionProfileName和许多其他属性的注释进行注释。

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

于 2020-03-27T18:55:20.787 回答