事实上,JPA并不是一项技术,而是一种标准,因为JPA只是一套接口,本身不能完成任何事情。JPA只是规范了Java持久化的官方标准。JPA有以下几个优点。
l 可持久化Java对象。JPA能够直接持久化复杂的Java对象,并能够使用JPQL语言进行复杂的查询。JPQL是JPA专用的查询语言,是类似于SQL的面向对象的查询语言。
l 使用简单。JPA使用注释(Annotation)定义Java对象与关系数据库之间的映射,而传统的ORM多使用xml配置文件。JPA使用起来比ORM要方便。使用JPA不用关注底层使用什么数据库。
l 规范标准化。JPA是JCP组织发布的,是Java官方规定的统一的API。目前已经有多种框架实现JPA标准。使用了JPA的系统可以自由选择遵循JPA标准的框架,并能够自由更换。
l 事务性、大数据量。JPA底层使用关系数据库进行存储,因此具备关系数据库的特点,例如事务性、数据完整性、并发访问、大数据量等。
l 与其他持久化技术相比,JPA有很大的技术优势。表列出了JPA与其他持久化技术的比较。
表 JPA与其他持久化技术的比较
| 序列化 | JDBC | ORM | ODB | JPA |
持久化Java对象 | 是 | 否 | 是 | 是 | 是 |
具备面向对象特征 | 是 | 否 | 是 | 是 | 是 |
事务完整性 | 否 | 是 | 是 | 是 | 是 |
并发性 | 否 | 是 | 是 | 是 | 是 |
大数据集 | 否 | 是 | 是 | 是 | 是 |
对现有的关系数据库数据的支持 | 否 | 是 | 是 | 否 | 是 |
数据查询 | 否 | 是 | 是 | 是 | 是 |
严格标准/可移植性 | 是 | 否 | 否 | 否 | 是 |