-1
據我所知,它實際上是一個池,雙向讀取持久化JPA實體的寫入緩存。爲什麼JPA EntityManager根據定義不是線程安全的?
我認爲,這是一個類應該是真正的線程安全,並行和可重入的典型情況。
但我在網上讀到,那不是情況。 Here我甚至讀過,這是情況由定義。
爲什麼?
據我所知,它實際上是一個池,雙向讀取持久化JPA實體的寫入緩存。爲什麼JPA EntityManager根據定義不是線程安全的?
我認爲,這是一個類應該是真正的線程安全,並行和可重入的典型情況。
但我在網上讀到,那不是情況。 Here我甚至讀過,這是情況由定義。
爲什麼?
任何人都可以讀JPA規範,第7.2節
的實體管理器必須不多個同時 執行的線程之間共享,如實體管理器和持久性上下文是 是線程不是必需的。只能以單線程方式訪問實體管理器 。
的EntityManager
是一個快速創建和配置對象,並從請求 - 響應,在那裏你創建一個EntityManager
在請求開始,並在年底關閉它的最常見的使用情況如下。它不是對象的「池」,但它確實保存了它在其生命週期中遇到的對象的緩存。 EntityManagerFactory是線程安全的。
PS這個問題不適合Stackoverflow,因爲上面的幫助部分會告訴你。這不是「你有的一些問題」,並且可能會「創造討論」。