第一个候选发布版本!
用户集合类型
支持使用 @CollectionType
或 @CollectionTypeRegistration
的 UserCollectionType
。
有关详细信息,请参阅用户指南
迁移指南
在Beta3和CR1之间,对迁移指南进行了大量的修改。
审查API、SPI和内部区别
API、SPI和内部区别已经过审查,并通过多种方法进行了修正。
为了快速参考,我们的意思是:
- API
-
我们期望应用直接使用的任何内容(例如
Session
) - SPI
-
我们期望集成直接使用的任何内容(例如
SessionImplementor
、TypeContributor
等) - 内部
-
被认为是由Hibernate自身内部使用的任何内容
多年前,我们开始采用分割包方法来强调这种区别——
-
包路径以
.internal
结尾(例如org.hibernate.internal
)被认为是内部使用 -
包路径以
.spi
结尾(例如org.hibernate.spi
)被认为是SPI -
包路径不以
.spi
结尾(例如org.hibernate
)被认为是API
大量移动包会对Hibernate开发和消费者及集成造成干扰。虽然这是一种首选方法,但由于干扰因素,我们尽量将其限制在尚未重新组织且我们正在积极工作的包上(例如本次发布的 org.hibernate.query
包)。
为了在我们不想重新组织包的情况下区分这一点,并允许更多的粒度,我们使用@Internal
注解来标记某些内容(包、类、方法等)为内部。
我们还使用@Incubating
来表示某些内容(包、类、方法等)处于孵化状态。
测试
开发的另一个重点是Hibernate测试套件和Jakarta Persistence TCK。
由于存储结果的方式,TCK结果难以查看。但截至今天,我们只剩下大约50个失败的测试!