Yat*_*oel 18 java jpa entitymanager
我正在学习JPA并且有一个问题:
在哪些情况下EntityManager,我们的应用程序需要多个?
我所知道的两种情况如下:
当我们的应用程序是一个多线程应用程序并且多个线程需要JPA事务时,因为EntityManager它不是线程安全的,我们需要EntityManager每个线程一个.
当任何线程需要多个并发事务时,我们EntityManager在该线程中需要多个,因为EntityManager和之间存在一对一的关系EntityTransaction.
Q1.当我们需要不止一个时,还有其他情况EntityManager吗?
Q2.根据我的理解,EntityManagerFactory每个Persitence单位应该只有一个.我对么?如果没有,那么当EntityManagerFactory每个持久性单元需要多个时,那些情况是什么?
Bal*_*usC 11
Q1:EntityManager最好与"老旧的"Hibernate进行比较Session:一个工作单元(一个简单的业务操作,例如"登录用户","下订单"等).它不一定与单个线程相关联.如果不同的线程执行在单个工作单元内相互依赖的DB任务,则只会遇到麻烦.您需要同步执行它们(最好是在单个线程中按顺序执行).例如,如果您具有业务要求,以便在用户登录时清理一些"旧日志"(合理地不会打扰彼此的信息),则可以在单个工作单元内的两个单独的线程中完美地执行它.
Q2:你的理解是正确的.但是,您可以创建多个,但这没有任何意义,也没有任何好处.它只会增加很多开销.
| 归档时间: |
|
| 查看次数: |
7450 次 |
| 最近记录: |