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