今天看了ejb,持久化单元这块,了解了它的原理。下面画了一张图,简单说说我的理解。
PersistenceUnit是persistence.xml中的一个子节点,配置我们的数据源(可以有多个),但是持久化单元的名称必须唯一。
EntityManagerFactory根据PersistenceUnit创建 EntityManager是实体管理器,它管理者实体和数据记录的映射和同步问题。
PersistenceContext称为持久化上下文,管理当前事务范围内的实体数据。
EntityManager通过注入@PersistenceContext拿到实体数据,然后通过EntityManager的Persist, merge, remove, flush, refresh等操作来实现PersistenceContext与关系数据库的映射。