-1
据我所知,它实际上是一个池,双向读取持久化JPA实体的写入缓存。为什么JPA EntityManager根据定义不是线程安全的?
我认为,这是一个类应该是真正的线程安全,并行和可重入的典型情况。
但我在网上读到,那不是情况。 Here我甚至读过,这是情况由定义。
为什么?
据我所知,它实际上是一个池,双向读取持久化JPA实体的写入缓存。为什么JPA EntityManager根据定义不是线程安全的?
我认为,这是一个类应该是真正的线程安全,并行和可重入的典型情况。
但我在网上读到,那不是情况。 Here我甚至读过,这是情况由定义。
为什么?
任何人都可以读JPA规范,第7.2节
的实体管理器必须不多个同时 执行的线程之间共享,如实体管理器和持久性上下文是 是线程不是必需的。只能以单线程方式访问实体管理器 。
的EntityManager
是一个快速创建和配置对象,并从请求 - 响应,在那里你创建一个EntityManager
在请求开始,并在年底关闭它的最常见的使用情况如下。它不是对象的“池”,但它确实保存了它在其生命周期中遇到的对象的缓存。 EntityManagerFactory是线程安全的。
PS这个问题不适合Stackoverflow,因为上面的帮助部分会告诉你。这不是“你有的一些问题”,并且可能会“创造讨论”。