JPA概述、生命週期

z1340954953發表於2018-06-22

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值,和實體上下文有聯絡



相關文章