Java持久化API(Java Persistence API, JPA)是基于POJO的持久化机制,从Hibernate和Java数据对象上借鉴了很多理念,引入了Java 5注解的特性。

在Spring中使用JPA的第一步是要在Spring应用上下文中将实体管理器工厂按照Bean的形式来进行配置。

配置实体管理器工厂

基于JPA的应用程序使用EntityManagerFactory的实现类来获取EntityManager实例。
JPA定义的两种类型的实体管理器:

  • 应用程序管理类型(Application-managed),由LocalEntityManagerFactoryBean生成
  • 容器管理类型(Container-managed),由LocalContainerEntityManagerFactoryBean生成

二者区别在于EntityManager的创建和管理方式:

  • 应用程序管理类型的EntityManager由EntityManagerFactory创建
  • 容器管理类型的EntityManager由PersistenceProvider的createEntityManagerFactory()方法得到的
    二者唯一值得关注的区别是在Spring应用上下文中如何进行配置。