此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Cassandra 4.4.0spring-doc.cadn.net.cn

从 1.x 到 2.x 的迁移指南

Spring Data for Apache Cassandra 2.0 在从早期版本升级时引入了一组重大更改:spring-doc.cadn.net.cn

弃用

合并的 Spring CQL 和 Spring Data Cassandra 模块

Spring CQL 和 Spring Data Cassandra 现在合并到一个模块中。 独立的spring-cql模块不再可用。 您可以找到合并到spring-data-cassandra. 下面的清单显示了如何包括spring-data-cassandra在您的 maven 依赖项中:spring-doc.cadn.net.cn

<dependencies>

  <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-cassandra</artifactId>
    <version>4.5.0-SNAPSHOT</version>
  </dependency>

</dependencies>

通过合并,我们将所有 CQL 包合并到 Spring Data Cassandra 中:spring-doc.cadn.net.cn

[[修订的 cqltemplate/cassandratemplate]] == 已修订CqlTemplate/CassandraTemplatespring-doc.cadn.net.cn

我们分开CqlTemplateCassandraTemplate以三种方式:spring-doc.cadn.net.cn

  • CassandraTemplate不再是CqlTemplate而是使用允许重用和精细控制 fetch 大小、一致性级别和重试策略的实例。 您可以获取CqlOperations通过CassandraTemplate.getCqlOperations(). 由于更改,对CqlTemplate需要额外的 bean 设置。spring-doc.cadn.net.cn

  • CqlTemplate现在反映基本的 CQL作,而不是混合使用高级和低级 API 调用(例如count(…)execute(…)),并且 reduced 方法集与 Spring Framework 的JdbcTemplate及其方便的回调接口。spring-doc.cadn.net.cn

  • 异步方法在AsyncCqlTemplateAsyncCassandraTemplate通过使用ListenableFuture. 我们删除了Cancellable以及各种异步回调侦听器。ListenableFuture是一种灵活的方法,并允许转换为CompletableFuture.spring-doc.cadn.net.cn

删除CassandraOperations.selectBySimpleIds()

该方法已被删除,因为它不支持复杂 ID。 新引入的查询 DSL 允许对单列 ID 使用映射 ID 和复杂 ID,如下例所示:spring-doc.cadn.net.cn

cassandraTemplate.select(Query.query(Criteria.where("id").in(…)), Person.class)

更好的名称CassandraRepository

我们将CassandraRepositoryTypedIdCassandraRepository要将 Spring Data Cassandra 命名与其他 Spring Data 模块保持一致:spring-doc.cadn.net.cn

删除了 SD CassandraConsistencyLevelRetryPolicy支持 DataStax 的类型ConsistencyLevelRetryPolicy类型

Spring Data CassandraConsistencyLevelRetryPolicy已被删除。 请使用 DataStax 驱动程序提供的类型。spring-doc.cadn.net.cn

Spring Data Cassandra 类型限制了对 Cassandra 本机驱动程序中提供并允许的可用功能的使用。 因此, Spring Data Cassandra 的类型在每次驱动程序引入新功能时都需要更新。spring-doc.cadn.net.cn

重构了 CQL 规范以值对象和配置器

CQL 规范类型现在尽可能地是值类型(例如FieldSpecification,AlterColumnSpecification),对象由静态工厂方法构造。 这允许简单值对象的不可变性。 Configurator 对象(例如AlterTableSpecification)最初通过静态工厂方法构造,并允许进一步配置,直到创建所需的状态。spring-doc.cadn.net.cn

重构QueryOptions成为不可变对象

QueryOptionsWriteOptions现在是不可变的,并且可以通过构建器创建。 接受QueryOptions强制使用非 null 对象,这些对象可从 static 获得empty()factory 方法。 以下示例演示如何使用QueryOptions.builder():spring-doc.cadn.net.cn

QueryOptions queryOptions = QueryOptions.builder()
		.consistencyLevel(ConsistencyLevel.ANY)
		.retryPolicy(FallthroughRetryPolicy.INSTANCE)
		.readTimeout(Duration.ofSeconds(10))
		.fetchSize(10)
		.tracing(true)
		.build();

重构CassandraPersistentProperty到 Single-column

仅当您直接对映射模型进行作时,此更改才会影响 You。spring-doc.cadn.net.cn

CassandraPersistentProperty允许以前绑定多个列名以供复合主键使用。 的列CassandraPersistentProperty现在缩减为单个列。 解析的复合主键通过MappingContext.getRequiredPersistentEntity(…).spring-doc.cadn.net.cn