Jakarta Persistence规范3.2详解

需积分: 4 0 下载量 59 浏览量 更新于2024-07-06 收藏 13.54MB PDF 举报
"Jakarta Persistence规范3.2版是Java持久层API(JPA)在Jakarta EE平台上的标准规范。该文档由Jakarta Persistence团队维护,目前处于3.2-SNAPSHOT版本,最后更新日期为2022年2月25日,状态为草案。文档内容涵盖了JPA的核心概念、实体、主键与身份、基本类型、可嵌入类、关系映射等多个方面。" JPA(Java Persistence API)是Java平台上的一个标准,用于处理对象关系映射(ORM),使开发者能够在Java应用程序中操作关系数据库。Jakarta Persistence 3.2是这一规范的最新版本,它在Jakarta EE平台上提供了一套完整的框架来管理Java对象和数据库之间的交互。 1. **范围**:Jakarta Persistence规范旨在定义一个接口,允许开发人员以面向对象的方式工作,同时利用关系数据库的强项。它的目标是简化数据持久化,减少对SQL的直接依赖,并提供事务管理和查询能力。 2. **实体(Entities)**:在JPA中,实体是应用程序中的核心业务对象,它们与数据库中的表相对应。实体类必须带有`@Entity`注解,并且可以有持久化的字段和属性。 - **持久化字段和属性**:这些是实体类中能够被JPA识别并保存到数据库的成员变量。 - **访问类型**:JPA支持两种访问类型,即默认访问(基于字段或基于属性)和显式访问(通过指定注解来控制访问路径)。 3. **主键与实体身份(Primary Keys and Entity Identity)**:每个实体都需要一个主键来唯一标识其在数据库中的记录。JPA允许声明基于计算的(派生的)主键,这可以通过`@GeneratedValue`注解实现。 - **派生主键**:这些是基于其他属性或计算生成的主键,需要通过`@GeneratedValue`和`@IdClass`或`@EmbeddedId`进行详细配置。 4. **基本类型(Basic Types)**:JPA支持一系列基本数据类型,如整型、字符串等,可以直接映射到数据库列。 5. **可嵌入类(Embeddable Classes)**:这些类可以作为实体的一部分进行存储,它们的属性将被直接映射到同一个数据库表中。 6. **集合和基本类型的映射**:包括列表、集合和映射等复杂类型的字段,可以映射到数据库的关联表或列。 7. **映射默认值**:对于非关系字段或属性,JPA提供了默认的映射规则。 8. **实体关系(Entity Relationships)**:JPA支持多种关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。这些关系通过注解如`@ManyToOne`、`@OneToMany`等进行定义。 - **关系映射**:包括了关系的级联操作、懒加载、fetch策略等高级特性。 9. **映射地图(Map Collections)**:JPA允许使用`@MapKey`和`@MapValue`注解来指定映射的键和值类型。 这个规范文档详细阐述了JPA 3.2中的各种概念和用法,是开发者理解和使用JPA进行数据库操作的重要参考资料。通过学习和实践,开发者可以高效地实现Java应用程序的数据持久化,避免直接编写大量的SQL代码。