JPA是如何与Hibernate关联的?

JPA是Java EE的ORM标准,Hibernate是最流行的JPA实现之一。两者的关系如下:

  1. JPA定义了ORM的规范,包括映射文件、API、查询语言(JPQL)等。
  2. Hibernate实现了JPA的规范,提供了具体的ORM框架与技术。
  3. 使用JPA标准的应用可以在不同的实现上运行,如Hibernate、EclipseLink、OpenJPA等。
  4. Hibernate除了实现JPA规范外,还有自身的特有特性,如riter塔映射、批量更新/删除等。

使用Hibernate完成JPA操作的步骤:

  1. 添加Hibernate JPA相关依赖。
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
</dependency>
  1. 创建persistence.xml配置文件。指定provider为org.hibernate.jpa.HibernatePersistenceProvider。
<persistence-unit name="exampleUnit" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
</persistence-unit> 
  1. 编写ORM映射文件(如entitymanager.xml)或使用JPA注解配置映射信息(@Entity等)。
  2. 通过JPA的API获得EntityManagerFactory和EntityManager,进行数据操作。
  3. Hibernate会根据JPA的标准来解析映射信息并执行持久化操作。

代码示例:

// 从persistence.xml中获得 EntityManagerFactory  
EntityManagerFactory emf = Persistence.createEntityManagerFactory("exampleUnit");

// 获得EntityManager  
EntityManager em = emf.createEntityManager();

// 持久化操作 
User user = new User();
em.persist(user);  

// ...

em.close(); 
emf.close();