我是OSGi的初學者,我的項目包括開發和執行,在OSGi容器(apache felix;可分發的jar),持久性包(使用jpa),然後與數據庫(MySql)通過jpa提供程序(Hibernate)。
我讀了關於OSGi的jpa規範,所以,如果我已經正確理解,我必須使用JPA提供程序來實現OSGI jpa企業規範的OSGi。這jpa提供程序將跟蹤一個註冊的持久性包爲它做一個EntityManagerFactory?使用JPA與OSGi或不使用JPA的區別
那麼究竟是什麼,直接使用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,..)是否足以安裝並啓動OSGi容器,例如「org.apache.aries.jpa.api」作爲OGSi企業的實現jpa規範,然後只從與註冊表相關的持久性單元名稱檢索「EntityManagerFactory」服務,或者我還應該自己註冊一個像HibernatePersistence一樣的PersistenceProvider,以便可以將其聲明爲「provider」我的persistence.xml文件?
我在這裏發現了很多關於這個主題的討論。我仍然有問題,但
感謝