一、JPA 与 EntityManager 详解
JPA (Java Persistence API) 是 Java 持久层的标准规范,它定义了一套对象关系映射(ORM)的接口和规则,用于将 Java 对象映射到数据库表。你可以将其理解为一种“契约”,它规定了如何操作数据库,但并不提供具体的实现。
EntityManager 则是 JPA 规范中最核心的接口,是开发者与数据库进行交互的“总代理”或“网关”。它负责管理一个持久化上下文(Persistence Context),你可以把它看作是一个一级缓存,其中存放着所有被它管理的实体对象。在这个上下文中,每个持久化实体 ID 都对应一个唯一的对象实例。
EntityManager 提供了我们进行数据操作的所有基础方法,包括 persist(新增)、merge(更新/合并)、remove(删除)和 find(查询)等。
简单来说:JPA 是“规则手册”,而
EntityManager是执行这些规则的“办事员”。
二、EntityManager 与 JPA 的比较
这个问题类似于比较“法律”和“警察”。JPA 是规范(Specification