Hibernate 团队自豪地宣布发布了 ORM 5.1,其中包含许多新功能和改进,包括
实体连接(或即席连接)
在 HQL 中,你现在可以定义一个实体连接,而不仅仅是映射关联。例如
select ...
from FinancialRecord f
left join User u
on r.lastUpdateBy = u.username
请参阅HHH-16获取详细信息。
通过多个 ID 加载 API
现在可以通过标识符一次性加载多个相同类型的实体,就像通过标识符加载单个实体一样。例如
// load Users 1, 2 and 3 at one shot
List<User> users = session.byMultipleIds(User.class)
.multiLoad( 1, 2, 3 );
请参阅HHH-7572获取详细信息。
@Embeddables 和所有空列值
从历史上看,Hibernate 总是将 @Embeddable 的所有空列值视为 @Embeddable 应该为空。5.1 允许应用程序指示 Hibernate 应使用空的 @Embeddable 实例。这是通过一个可选设置实现的:hibernate.create_empty_composites.enabled
。
请参阅HHH-7610获取详细信息。
Envers 审计查询现在可以引用一对一关联
在定义 Envers 审计查询时,你现在可以跨关联进行引用。
这里的一个进一步性能改进将是利用上述提到的实体连接工作(HHH-16)。这项工作没有及时完成以包括在 5.1.0 中,但将在 5.1.1 中实现。
详情请见HHH-3555。
此外,还进行了许多性能改进和错误修复。
从5.0迁移到5.1的迁移指南请见这里。这是一个临时位置;我们希望在未来更长的时间内,在https://hibernate.com.cn提供更好的选项。
有关通过您喜欢的依赖项管理功能构建工具消费发布版的信息,请参阅https://hibernate.com.cn/orm/downloads/
对于对依赖项管理功能构建工具有过敏反应的人来说,可以从SourceForge或BinTray获取发布版包。