JPA概述
JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。
JPA就是一套定义对象持久化的一套规范,市场上有很多JPA实现,常见的是hibernate jpa 和spring data jpa
JPA主要的内容和操作的API
JPA维护一个Persistence Context(持久化上下文),在持久化上下文中维护实体的生命周期。主要包含三个方面的内容:
1. ORM元数据。JPA支持annotion或xml两种形式描述对象-关系映射。
2. 实体操作API。实现对实体对象的CRUD操作。
3. 查询语言。约定了面向对象的查询语言JPQL(Java Persistence Query Language)。
JPA的主要API都定义在javax.persistence包中。如果你熟悉Hibernate,可以很容易做出对应
EntityManagerFactory:实体管理器工厂 EntityManager:实体管理器
JPA中实体的生命周期
New:对象刚创建,还没有和实体上下文建立联系
Managed: 持久化对象,有id值,和实体上下文建立了联系,此时对 对象的修改,在事务提交后,会发起update语句更新到数据库。
Detached:游离态对象,有id值,但是和实体上下文脱离联系。调用em.merge()方法后,游离态对象能够回到持久状态。
Removed:对象删除,有id值,和实体上下文有联系