1.2. Hibernate EntityManager
Hibernate 实体管理器实施由 Jakarta Persistence 2.2 规范定义的编程接口和生命周期规则。此打包程序与 Hibernate 批注一起,在成熟的 Hibernate 核心基础上实施独立的 Jakarta Persistence 解决方案。您可以组合使用所有三个组件、不带 Jakarta Persistence 编程接口和生命周期的注释,甚至还可以根据项目的业务和技术需求使用纯原生 Hibernate 内核。您随时可以回退到 Hibernate 原生 API,或者在需要时甚至退回到原生 JDBC 和 SQL。它为 JBoss EAP 提供了完整的 Jakarta Persistence 解决方案。
JBoss EAP 的 7.3 发行版本符合 Jakarta Persistence 2.2 规范,其符合 Jakarta EE 8 中定义的规范。
Hibernate 还提供规范的其他功能。若要开始使用 Jakarta Persistence 和 JBoss EAP,请参阅 JBoss EAP 附带的 bean-validation
、gleter
和 Kitchen sink
快速入门。
Jakarta Persistence 在容器中(如 Jakarta Enterprise Beans 3 或更现代化的 Jakarta Contexts 和 Dependency Injection)以及独立 Java SE 应用在特定容器外执行。两种环境中都提供以下编程接口和构件:
如果您计划将安全管理器与 Hibernate 一起使用,请注意,Hibernate 仅在 JBoss EAP 服务器引导 实体管理器Factory
时支持它。当应用程序引导 EntityManagerFactory
或 SessionFactory
时不支持它。
- EntityManagerFactory
- 实体管理器工厂提供实体管理器实例,所有实例都配置为连接到同一数据库,使用由特定实施定义的相同默认设置等。您可以准备多个实体管理器工厂来访问多个数据存储。此界面与原生 Hibernate 中的 SessionFactory 类似。
- EntityManager
- 实体管理器 API 用于访问特定工作单元中的数据库。它用于创建和删除持久实体实例,按主要密钥身份查找实体,以及对所有实体进行查询。此界面与 Hibernate 中的 Session 类似。
- 持久性上下文
- 持久上下文是一组实体实例,其中任何持久实体身份都有唯一的实体实例。在持久上下文中,实体实例及其生命周期由特定实体管理器管理。此上下文的范围可以是事务,也可以是扩展工作单元。
- persistence 单元
- 可由给定实体管理器管理的实体类型集合由持久性单元定义。持久性单元定义应用相关或分组的所有类的集合,它们在映射到单个数据存储时必须共存。
- 容器管理的实体管理器
- 生命周期由容器管理的实体管理器。
- 应用程序管理的实体管理器
- 生命周期由应用程序管理的实体管理器。
- Jakarta Transactions 实体经理
- 参与雅加达交易的实体经理.
- 资源本地实体管理器
- 使用资源交易(而不是 Jakarta 交易)的实体管理器。