2

私は OSGi の初心者です。私のプロジェクトは、OSGi コンテナ (apache felix; 配布可能な jar) 内で永続性バンドル (jpa を使用) を開発および実行し、jpa プロバイダー (Hibernate) を介してデータベース (MySql) と通信することで構成されています。 )。
OSGi の jpa 仕様について読んだので、正しく理解していれば、OSGI jpa エンタープライズ仕様を実装する OSGi 用の JPA プロバイダーを使用する必要があります。この jpa プロバイダーは、登録済みの永続化バンドルを追跡して、その EntityManagerFactory を作成しますか?

jpa プロバイダーを直接使用して EntityManagerFactory (Persistence.createEntityManagerFactory("xx")) を作成するか、レジストリから取得するかの違いは何ですか?

serviceReferences = context.getServiceReferences(
            EntityManagerFactory.class.getName(),
            String.format("(%s=%s)", 
            EntityManagerFactoryBuilder.JPA_UNIT_NAME,
            persistenceUnit));

コンテナー (apache karaf、geronimo、spring dm など) を使用したくないので、「org.apache.aries.jpa.api」などの OSGi コンテナーにインストールして起動するだけで十分ですか? OGSiエンタープライズJPA仕様の実装として、永続化ユニット名に関連付けられたレジストリから「EntityManagerFactory」サービスのみを取得するか、HibernatePersistenceのようなPersistenceProviderを自分で登録して、永続化で「プロバイダ」として宣言できるようにする必要があります.xml ファイル ?

ここで、このトピックに関する多くの議論が見つかりました。それでも困りますが、

ありがとう

4

1 に答える 1