不,EntityManager不是线程安全的。亚当·比恩虽然也是正确的。您只是没有正确地看问题。他要回答的问题不是EntityManager是否是线程安全的,而是要说明在无状态会话Bean中使用容器管理的EntityManger是安全的。然后,他解释了允许容器发挥其魔力的规范的理由和措辞-“每个实例仅看到序列化的方法调用序列”。这允许容器注入在每个方法调用中具有不同的EntityManager上下文,类似于如何将每个调用绑定到其自己的事务和隔离的资源。
注入实际上只是注入EntityManager代理,该代理使容器可以控制下面的JPA EntityManagers的生命周期,从而使其可以与线程和事务绑定。
因此,EntityManager不是线程安全的,但是要求容器注入的EntityManager代理在无状态会话Bean中安全使用。



