Jakarta Persistence规范3.2详解
需积分: 4 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代码。
2020-12-23 上传
2009-12-23 上传
2023-07-25 上传
2023-07-17 上传
2023-08-10 上传
2023-06-07 上传
2024-05-12 上传
2023-08-09 上传
2023-06-06 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
wisfy_21
- 粉丝: 9
- 资源: 1
最新资源
- Lombok 快速入门与注解详解
- SpringSecurity实战:声明式安全控制框架解析
- XML基础教程:从数据传输到存储解析
- Matlab实现图像空间平移与镜像变换示例
- Python流程控制与运算符详解
- Python基础:类型转换与循环语句
- 辰科CD-6024-4控制器说明书:LED亮度调节与触发功能解析
- AE particular插件全面解析:英汉对照与关键参数
- Shell脚本实践:创建tar包、字符串累加与简易运算器
- TMS320F28335:浮点处理器与ADC详解
- 互联网基础与结构解析:从ARPANET到多层次ISP
- Redhat系统中构建与Windows共享的Samba服务器实战
- microPython编程指南:从入门到实践
- 数据结构实验:顺序构建并遍历链表
- NVIDIA TX2系统安装与恢复指南
- C语言实现贪吃蛇游戏基础代码