JPA定义了Java ORM及实体操作API的标准。本文摘录了JPA的一些关键信息以备查阅。
如果有hibernate的基础,通过本文也可以快速掌握JPA的基本概念及使用。
1 JPA概述
JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。
JPA是JSR-220(EJB3.0)规范的一部分,在JSR-220中规定实体对象(EntityBean)由JPA进行支持。
所以JPA不局限于EJB3.0,而是作为POJO持久化的标准规范,可以脱离容器独立运行,开发和测试更加方便。
JPA在应用中的位置如下图所示:
JPA维护一个Persistence Context(持久化上下文),在持久化上下文中维护实体的生命周期。主要包含三个方面的内容:
- ORM元数据。JPA支持annotion或xml两种形式描述对象-关系映射。
- 实体操作API。实现对实体对象的CRUD操作。
- 查询语言。约定了面向对象的查询语言JPQL(Java Persistence Query Language)。
JPA的主要API都定义在javax.persistence包中。如果你熟悉Hibernate,可以很容易做出对应:
org.hibernate | javax.persistence | 说明 |
---|---|---|
cfg.Configuration | Persistence | 读取配置信息 |
SessionFactory | EntityManagerFactory | 用于创建会话/实体管理器的工厂类 |
Session | EntityManager | 提供实体操作API,管理事务,创建查询 |
Transaction | EntityTransaction | 管理事务 |
Query | Query | 执行查询 |