我是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文件?
我在这里发现了很多关于这个主题的讨论。我仍然有问题,但
感谢