先人一步
VMware 提供培训和认证,助您加速进步。
了解更多我谨代表 Spring Data 团队高兴地宣布 Lovelace RC1 版本现已可用。第一个发布候选版本基于刚刚发布的 Spring Framework 5.1 RC1,并为即将发布的 Spring Boot 2.1 M1 版本做准备。
此发布候选版本修复了 194 个问题,包含以下重要变更
Slice
查询支持。SCAN
支持。不可变对象支持允许在 Spring Data 中使用真正的不可变对象,而不会受到反射访问的干扰。此前,如果不可变对象受到 ID 生成、审计或乐观锁定的影响,它们可能会发生变化。这些操作会在原地改变实体,从而导致实际不可变对象发生变化。
从本版本开始,不可变对象支持确保不可变实体不会被更改。insert
和 save
方法返回与变更(例如生成的 ID)相关联的对象新实例。此更改要求您的代码重新编译,因为方法返回类型已更改。不可变对象支持需要在应用程序代码中具有相应的数据模型
.copy(…)
方法with...
方法的值对象with...
方法创建一个对象的新实例,该新实例包含所有先前的属性值,并具有 with…
属性的更改值,如下例所示
class Person
{
private final @Id String id;
private final String name;
private Person(String id, String name) {
// …
}
// …
Person withId(String id) {
return new Person(id, this.name);
}
}
Lombok 用户可以使用 @Value
和 @Wither
注解来遵循 with...
模式。
Spring Data MongoDB、Apache Cassandra、Couchbase、ElasticSearch、Redis、KeyValue、Neo4j(审计)和 Spring Data REST 模块均支持不可变对象。JPA 不支持不可变对象,因为映射层位于 JPA 实现内部。Neo4j 不支持带有双向关联的完全不可变对象。JDBC 的不可变对象支持将在 Lovelace RC2 中提供。
我们的目标是在 8 月底发布 Lovelace RC2,并在 9 月中旬发布 GA 版本,正好赶上今年的华盛顿特区 SpringOne Platform 大会。
以下是所有详细信息、文档和更新日志的链接