JPA是Java EE的ORM标准,Hibernate是最流行的JPA实现之一。两者的关系如下:
- JPA定义了ORM的规范,包括映射文件、API、查询语言(JPQL)等。
- Hibernate实现了JPA的规范,提供了具体的ORM框架与技术。
- 使用JPA标准的应用可以在不同的实现上运行,如Hibernate、EclipseLink、OpenJPA等。
- Hibernate除了实现JPA规范外,还有自身的特有特性,如riter塔映射、批量更新/删除等。
使用Hibernate完成JPA操作的步骤:
- 添加Hibernate JPA相关依赖。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
- 创建persistence.xml配置文件。指定provider为org.hibernate.jpa.HibernatePersistenceProvider。
<persistence-unit name="exampleUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
</persistence-unit>
- 编写ORM映射文件(如entitymanager.xml)或使用JPA注解配置映射信息(@Entity等)。
- 通过JPA的API获得EntityManagerFactory和EntityManager,进行数据操作。
- 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();