永发信息网

JAVAEE容器怎么管理EntityManager和PersistenceContext

答案:1  悬赏:20  手机版
解决时间 2021-02-22 05:03
  • 提问者网友:富士山上尢
  • 2021-02-21 09:14
JAVAEE容器怎么管理EntityManager和PersistenceContext
最佳答案
  • 五星知识达人网友:枭雄戏美人
  • 2021-02-21 10:31
容器托管EntityManager
  @PersistenceContext,存放unitName指向的DataBase对应的EntityBean实例集合,以及对这些实例进行生命周期管理
  @PersistenceContext(
   name="entityManagerName",
   properties=@PersistenceProperty[],
   type=""//PersistenceContextType TRANSACTION (default,transaction-scope)/EXTENDED
   unitName=""//the persistence unit name
)
  EntityManager
  必须关联一个PersistenceContext对象,提供一系列方法对PersistenceContext中的EntityBean实例进行操作。
  可以使用依赖注入,将某个PersistenceContext对象注入给EntityManager对象
  如:
  @PersistenceContext(unitName="lxhPU")
  private EntityManager entityManager;
  JAVAEE容器会智能选取容器中的PersistenceContext实例跟这个entityManager实例来关联
  a、一般情况下,一个persistence unit只需对应一个PersistenceContext实例,如
  class UserDao{ @PersistenceContext(unitName="lxhPU") private EntityManager entityManager; } class OrderDao{ @PersistenceContext(unitName="lxhPU") private EntityManager entityManager; }
  UserDao和OrderDao中的entityManager对象关联的PersistenceContext是同一个实例
  当然,我们也可以手动为PersistenceUnit增加PersistenceContext实例
  class UserDao{ @PersistenceContext(unitName="lxhPU") private EntityManager entityManager; @PersistenceContext(name="pc2" ,unitName="lxhPU") private EntityManager entityManager2; }
  UserDao 中的entityManager和entityManager2关联的2个PersistenceContext实例是不同的,尽管他们指向的是同一个PersistenceUnit
  b、JAVAEE容器会维护PersistenceContext实例及其关联的EntityManger实例
  一个PersistenceContext实例可以被多个EntityManager实例关联
  class UserDao{ @PersistenceContext(unitName="lxhPU") private EntityManager entityManager; @PersistenceContext(unitName="lxhPU") private EntityManager entityManager2; } class OrderDao{ @PersistenceContext(unitName="lxhPU") private EntityManager entityManager; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯