JPA

简述

什么是 JPA

JavaEE5.0 的平台的 ORM 标准规范。为应用程序访问持久层提供统一的方式。

JPA 与 Hibernate 的关系

JPA 是规范,Hibernate 是实现。 从功能上来讲,JPA 是 Hibernate 的一个子集。Hibernate 只是 JPA 的一个提供商。类似于JDBC 和 JDBC驱动提供商。

JPA 的优点

JPA 提供了更加简洁的,基于注解的方式来进行映射。

JPA 配置文件

要求

  1. 必须配置在 META-INF 目录下,且配置名字是固定的 persistence.xml。
  2. 顶级节点为 <persistence> ,次级节点为 <persistence-unit>,JPA 的绝大部分信息配置在 <persistence> 节点内。
    • <persistence-unit> 节点 name 属性:用来指定这个 persistence单元的名称
    • <persistence-unit> 节点 transaction-type 属性:指定 JPA 的事务处理策略,默认为 RESOURCE_LOCAL,数据库级别的事务,只能针对一种数据库,不支持分布式事务。 若需要支持分布式事务,使用 JTA,即:transaction-type="JTA"。
  3. 如果 JPA 的提供者存在多个的时候,需要在 <provider> 节点配置具体使用哪个提供者。需要是 javax.persistence.spi.PersistenceProvider 的实现类。
  4. 在 <properties> 节点内通过 <property> 节点配置数据库连接信息。
  5. 在 <properties> 节点内通过 <property> 节点配置属于具体实现的特性信息。
  6. 通过 <class> 节点来配置映射的实体类。

举例