ORM 5.1功能发布

发布者:    |       Hibernate ORM 发布

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获取详细信息。

CDI 集成改进

特别是在容器内集成方面,我们发现在 JPA、CDI 和 EE 规范中存在 JPA 和 CDI 组件之间的时间差距。通常这表现为 Hibernate 尝试过早地访问 CDI BeanManager。5.1 提供了一些解决方案来处理这个问题。从长远来看,我们正在与 Weld 开发团队合作,在 JPA 和 CDI 规范层面提出解决方案。

请参阅HHH-8706HHH-10477获取详细信息。

@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提供更好的选项。

完整的更改列表可以在这里找到(或这里,无Hibernate Jira账户的人士)。

有关通过您喜欢的依赖项管理功能构建工具消费发布版的信息,请参阅https://hibernate.com.cn/orm/downloads/

对于对依赖项管理功能构建工具有过敏反应的人来说,可以从SourceForgeBinTray获取发布版包。


返回顶部