JPA

簡述

什么是 JPA

JavaEE5.0 的平臺的 ORM 標(biāo)準(zhǔn)規(guī)范。為應(yīng)用程序訪問持久層提供統(tǒng)一的方式。

JPA 與 Hibernate 的關(guān)系

JPA 是規(guī)范,Hibernate 是實現(xiàn)。 從功能上來講,JPA 是 Hibernate 的一個子集。Hibernate 只是 JPA 的一個提供商。類似于JDBC 和 JDBC驅(qū)動提供商。

JPA 的優(yōu)點

JPA 提供了更加簡潔的,基于注解的方式來進(jìn)行映射。

JPA 配置文件

要求

  1. 必須配置在 META-INF 目錄下,且配置名字是固定的 persistence.xml。
  2. 頂級節(jié)點為 <persistence> ,次級節(jié)點為 <persistence-unit>,JPA 的絕大部分信息配置在 <persistence> 節(jié)點內(nèi)。
    • <persistence-unit> 節(jié)點 name 屬性:用來指定這個 persistence單元的名稱
    • <persistence-unit> 節(jié)點 transaction-type 屬性:指定 JPA 的事務(wù)處理策略,默認(rèn)為 RESOURCE_LOCAL,數(shù)據(jù)庫級別的事務(wù),只能針對一種數(shù)據(jù)庫,不支持分布式事務(wù)。 若需要支持分布式事務(wù),使用 JTA,即:transaction-type="JTA"。
  3. 如果 JPA 的提供者存在多個的時候,需要在 <provider> 節(jié)點配置具體使用哪個提供者。需要是 javax.persistence.spi.PersistenceProvider 的實現(xiàn)類。
  4. 在 <properties> 節(jié)點內(nèi)通過 <property> 節(jié)點配置數(shù)據(jù)庫連接信息。
  5. 在 <properties> 節(jié)點內(nèi)通過 <property> 節(jié)點配置屬于具體實現(xiàn)的特性信息。
  6. 通過 <class> 節(jié)點來配置映射的實體類。

舉例

<?xml versi
        
		

網(wǎng)友評論