Java Persistence API 2.0 官方规范详解

需积分: 13 3 下载量 27 浏览量 更新于2024-07-28 收藏 3.79MB PDF 举报
"JPA2-spec.pdf 是Java Persistence API 2.0的官方规格书,由Sun Microsystems发布,详细阐述了JPA2的规范标准。此文档由专家小组编写,由Linda DeMichiel领导,旨在为开发者提供关于JPA2的全面指南,并鼓励向jsr-317-feedback@sun.com发送反馈。该文档是2009年11月10日的最终版本,版权属于Sun Microsystems。" Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的对象持久化。JPA2.0是其第二个主要版本,带来了许多增强和改进,旨在提高开发者的生产力和灵活性。 在JPA2.0中,有以下几个关键知识点: 1. **Entity Manager**:Entity Manager是JPA的核心组件,负责与数据存储进行交互。在JPA2.0中,它提供了更强大的功能,如支持延迟加载(Lazy Loading)、事务管理和实体状态管理。 2. **Criteria API**:这是一个新的查询语言,允许开发者用类型安全的方式构建动态查询,减少了编译时错误,提高了代码的可读性和维护性。 3. ** Named Queries**:JPA2.0引入了命名查询,可以在XML或注解中预定义查询,使得查询更加结构化和易于管理。 4. **Fetch Groups**:这个特性允许开发者指定实体的特定属性集在何时被加载,以优化内存使用和性能。 5. **Association Management**:对多对多关联的处理得到增强,包括更灵活的关联映射和更细粒度的控制。 6. **Enhanced Annotation Support**:更多的注解被引入,如`@GeneratedValue`用于自动生成主键,`@Temporal`用于时间戳管理,以及`@PrePersist`、`@PostLoad`等生命周期回调方法。 7. **Detached Entities**:JPA2.0改进了对分离实体(Detached Entities)的处理,使得在不同上下文中操作同一实体变得更加简单。 8. **Entity Graphs**:实体图允许开发者定义数据加载模式,以控制关联的深度和粒度,从而优化查询性能。 9. **Secondary Tables**:支持实体在多个表中的映射,提高了数据模型的灵活性。 10. **Multitenancy Support**:JPA2.0提供了多租户的支持,允许在一个数据库实例中为多个独立的应用程序提供服务。 11. **Validation**:结合JSR 303 Bean Validation,JPA2.0可以对实体进行验证,确保数据的正确性。 12. **Persistence Unit Enhancements**:允许更细粒度的配置,如特定数据源的选择,以及对不同的持久化单元进行定制。 通过这些特性,JPA2.0为Java开发者提供了更强大、更灵活的ORM(对象关系映射)工具,简化了数据库操作,促进了企业级应用的开发。在实际项目中,开发者可以根据需求选择使用JPA2.0提供的各种功能来提升应用程序的效率和可维护性。