EntityManagerFactoryが EJB で役立つ場合、考えられる状況をいくつか把握しようとしています。もちろん、通常はトランザクション スコープEntityManager(JTA スコープ) だけが必要なため、注入されたすべての EntityManagers は同じ を共有しPersistenceContextます。次の状況で何が起こるか:
いつ
@PersistenceContext(type=PersistenceContextType.EXTENDED)使用されますか: これは JTA 対応ですか? そのような EntityManager のリクエストは JTA のコンテキストで実行されますか? そうでない場合、それはどれですか?(注: もちろん、@StatefulEJB でのみ機能します)。もちろん、この場合、EntityManager が独自の/特別な PersistenceContext を持つことは明らかです。EJB で を使用
@PersistenceUnitする場合EntityManagerFactory(すべてのタイプの EJB で機能すると思いますよね?)、取得したものはEntitymanagerJTA 対応ですか (もちろんEntitymanager.joinTransaction()必要です)? Factory からトランザクション スコープ (JTA が有効) または拡張 EntityManager を取得するにはどうすればよいですか? Entitymanager の代わりに Factory を使用すると便利な場合。(もちろん、EntityManagerFactory が Java SE アプリケーションから JPA への唯一のインターフェースであることは明らかですが、EJB はどうでしょうか?)。