私は 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 ファイル ?
ここで、このトピックに関する多くの議論が見つかりました。それでも困りますが、
ありがとう