JPA
簡述
什么是 JPA
JavaEE5.0 的平臺的 ORM 標準規(guī)范。為應用程序訪問持久層提供統(tǒng)一的方式。
JPA 與 Hibernate 的關系
JPA 是規(guī)范,Hibernate 是實現(xiàn)。 從功能上來講,JPA 是 Hibernate 的一個子集。Hibernate 只是 JPA 的一個提供商。類似于JDBC 和 JDBC驅動提供商。
JPA 的優(yōu)點
JPA 提供了更加簡潔的,基于注解的方式來進行映射。
JPA 配置文件
要求
- 必須配置在 META-INF 目錄下,且配置名字是固定的 persistence.xml。
-
頂級節(jié)點為 <persistence> ,次級節(jié)點為 <persistence-unit>,JPA 的絕大部分信息配置在 <persistence> 節(jié)點內。
- <persistence-unit> 節(jié)點 name 屬性:用來指定這個 persistence單元的名稱
- <persistence-unit> 節(jié)點 transaction-type 屬性:指定 JPA 的事務處理策略,默認為 RESOURCE_LOCAL,數(shù)據(jù)庫級別的事務,只能針對一種數(shù)據(jù)庫,不支持分布式事務。 若需要支持分布式事務,使用 JTA,即:transaction-type="JTA"。
- 如果 JPA 的提供者存在多個的時候,需要在 <provider> 節(jié)點配置具體使用哪個提供者。需要是 javax.persistence.spi.PersistenceProvider 的實現(xiàn)類。
- 在 <properties> 節(jié)點內通過 <property> 節(jié)點配置數(shù)據(jù)庫連接信息。
- 在 <properties> 節(jié)點內通過 <property> 節(jié)點配置屬于具體實現(xiàn)的特性信息。
- 通過 <class> 節(jié)點來配置映射的實體類。
舉例
<?xml versi