领先一步
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 大会。
以下是所有详细信息、文档和更改日志的链接