JPA 常用API介绍

本章节将介绍 JPA 中常用的 API,只有学习和了解了这些 API 才能更好的了解 JPA 的用法。

Persistence 

Persistence 类主要作用是用于获取 EntityManagerFactory 对象的。通过调用该类的 createEntityManagerFactory() 静态方法,根据配置文件中配置的持久化单元名称创建 EntityManagerFactory。

实例:使用“openJPA”持久化单元名称创建 EntityManagerFactory 对象。代码如下:

String NAME = "openJPA";
EntityManagerFactory emf = Persistence.createEntityManagerFactory(NAME);

EntityManagerFactory

EntityManagerFactory 接口主要用来创建 EntityManager 实例。EntityManagerFactory 是用于与持久单元的实体管理器工厂交互的接口。

当应用程序结束使用实体管理器工厂时,和/或在应用程序关闭时,应用程序应该关闭实体管理器工厂。一旦一个 EntityManagerFactory 被关闭,它的所有实体管理器都被认为处于关闭状态。

由于 EntityManagerFactory 是一个线程安全的对象(即多个线程访问同一个对象不会有线程安全问题),并且EntityManagerFactory 的创建非常浪费资源。

所以,在使用 JPA 编程时,可以对 EntityManagerFactory 进行优化,只需要做到一个工程内部只存在一个EntityManagerFactory 即可。

实例:使用给定的持久化单元名称创建 EntityManagerFactory 实例。代码如下:

String NAME = "openJPA";
EntityManagerFactory emf = Persistence.createEntityManagerFactory(NAME);

EntityManager

EntityManager 是用于与持久化上下文交互的接口。在 JPA 规范当中,EntityManager 是完成持久化操作的核心对象。

JPA 的实体类作为普通的 Java 对象,只有在使用 EntityManager 实例将其持久化后才会变成持久化对象。

EntityManager 对象在一组实体类与底层数据源之间进行 O/R 映射的管理。

它可以用来管理和更新 Entity Bean,根据主键查找 Entity Bean,还可以通过 JPQL 语句查询实体。

可以通过调用 EntityManager 的方法完成获取事务,以及持久化数据库的操作。

实例:使用 EntityManagerFactory 对象创建 EntityManager 对象,代码如下:

String NAME = "openJPA";
EntityManagerFactory emf = Persistence.createEntityManagerFactory(NAME);
EntityManager em = emf.createEntityManager();

EntityManager 提供的常用方法:

  • getTransaction() 获取事务对象

  • persist() 保存操作

  • merge() 更新操作

  • remove() 删除操作

  • find() 查询操作

  • createNativeQuery() 创建 Query 操作

EntityTransaction

在 JPA 规范中,EntityTransaction 接口主要用来完成事务操作。

在 JPA 中可以使用 EntityManager.getTransaction() 获取 EntityTransaction 接口实例,EntityTransaction 实例主要提供如下功能:

  • begin() 开启事务

  • commit() 提交事务

  • rollback() 回滚事务

更多 JPA 的 API 将在后续章节中娓娓道来……

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号