Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未同步的EntityManager如何从数据库中读取数据?_Java_Jpa_Ejb_Entitymanager - Fatal编程技术网

Java 未同步的EntityManager如何从数据库中读取数据?

Java 未同步的EntityManager如何从数据库中读取数据?,java,jpa,ejb,entitymanager,Java,Jpa,Ejb,Entitymanager,我正在学习EJB/JPA,我想知道这个代码段应该如何工作: @Stateful public class Sample { @PersistenceContext(type=PersistenceContextType.EXTENDED, synchronization=SynchronizationType.UNSYNCHRONIZED, unitName="..") EntityMana

我正在学习EJB/JPA,我想知道这个代码段应该如何工作:

@Stateful
public class Sample {
   @PersistenceContext(type=PersistenceContextType.EXTENDED, 
                       synchronization=SynchronizationType.UNSYNCHRONIZED,
                       unitName="..")
   EntityManager em;

   public Employee get(int id){
      retirm em.find(Employee.class , id);      
   }

   // ...
}
它是一个有状态bean,因此默认情况下,它应该包装在容器管理器事务中(必需)

但另一方面,非同步管理器被称为不加入事务,除非显式加入

那么,如果它不加入tx,它如何从DB中获取数据?它是否可能包含脏的/幻影的读数等


此代码段来自“Pro JPA 2”。

来自JPA 2.1规范的3.1.1:

find
方法(前提是在没有锁的情况下调用它,或者使用
LockModeType.NONE
调用它) 在事务中不需要调用
getReference
方法。如果实体经理 在使用事务范围的持久性上下文时,将分离生成的实体;如果 如果使用具有扩展持久性上下文的实体管理器,则将对其进行管理


酷,谢谢!但是,对于这样的带读/不带读事务,隔离级别是什么?