Hibernate EntityManager 3.5.0-Final 用户指南

需积分: 9 3 下载量 183 浏览量 更新于2024-08-01 收藏 449KB PDF 举报
"《Hibernate EntityManager 3.5.0_Final》是Hibernate ORM框架的一个参考文档,专注于介绍如何在Java环境中,特别是EJB3容器和Java SE环境下使用EntityManager进行JPA(Java Persistence API)持久化操作。文档由Emmanuel Bernard、Steve Ebersole和Gavin King共同撰写。" 在JPA中,EntityManager是核心组件,它提供了对象/关系映射(ORM)的接口,用于管理实体对象的生命周期和持久化。文档首先介绍了JPA持久化的概念: 1. **架构**: - **定义**:阐述了实体(Entity)、实体管理器(EntityManager)、持久化上下文(Persistence Context)等关键概念。 - **容器环境(如EJB3)**:区分了容器管理的实体管理器(Container-managed EntityManager)和应用管理的实体管理器(Application-managed EntityManager)。 - **容器管理的实体管理器**:由容器自动创建和管理,生命周期与EJB会话bean绑定。 - **应用管理的实体管理器**:由应用程序代码手动创建和管理。 - **持久化上下文范围**:描述了实体管理器的生命周期及其关联的持久化上下文。 - **持久化上下文传播**:讨论了在不同事务和方法调用之间如何处理持久化上下文。 2. **设置与配置**: - **设置**:涵盖了初始化Hibernate EntityManager的基本步骤。 - **配置与引导**:包括打包方式、实体扫描、属性配置以及启动流程。 - **事件监听器**:允许用户自定义持久化事件的处理,如保存、更新和删除时的行为。 - **在Java SE环境下获取EntityManager**:在非EJB环境中如何创建和使用实体管理器。 - **其他**:可能涉及的其他配置和使用细节。 3. **与对象的工作**: - **实体状态**:实体可以处于瞬时、持久、托管和脱离四种状态。 - **使对象持久化**:将Java对象转化为数据库记录的过程。 - **加载对象**:根据主键或查询条件获取持久化对象。 - **查询对象**:通过JPA的查询语言(JPQL)或Criteria API执行查询。 - **修改持久化对象**:对持久化对象的改动会被跟踪并同步到数据库。 - **脱离对象**:对象从持久化上下文移除,但其状态可被保留。 - **修改脱离对象**:在对象脱离后进行的修改需要重新附加到持久化上下文才能持久化。 - **自动状态检测**:Hibernate自动检测对象状态的变化。 - **删除管理的对象**:从数据库中移除对象。 - **刷新持久化上下文**:更新数据库与持久化上下文中的数据同步。 - **在事务内刷新**:事务提交前的刷新行为。 - **在事务外刷新**:非事务环境下刷新的注意事项。 - **传递性持久化**:关联对象的持久化处理,例如级联操作。 文档还涵盖了事务管理、查询优化、性能调优、第二级缓存、懒加载、多态性、继承和复合类型等更高级的主题,为开发者提供了一个全面理解Hibernate EntityManager及其在JPA中的使用的指南。