OpenJPA,很明显。我也看到过EclipseLink和Hibernate的提及,但是功能有显着差异吗?
大多数差异来自提供程序对OSGi的感知方式。例如,您可能需要在OSGi捆绑自己时包装Hibernatejars(或者使用其他人已经包装的集合 - 网络上有一些浮动)。
有时,提供商会尝试以在OSGi环境中不起作用的方式进行类加载,因此,如果您包装自己的或使用主要受支持提供商的"滑雪道外"功能,则需要注意这一点。
您还需要确保提供程序将自身注册为 OSGi 服务。这仅适用于OpenJPA,并且在Aries代码库中有一个EclipseLink适配器。我假设人们共享的Hibernate捆绑包也这样做。在此线程中,有有关如何为其他提供程序(特别是DataNucleus)执行此操作的说明:
http://www.mail-archive.com/aries-user@incubator.apache.org/msg00251.html
我实际上已经测试了提供者,所以我不会给你一个理论上的答案。
对于白羊座JPA版本1.0.0
- OpenJPA工作
- 休眠不起作用
- EclipseLink 尚未尝试
休眠不起作用,因为此处记录了一个问题:https://issues.apache.org/jira/browse/ARIES-978
基本上,由于缺少捆绑包上下文,部署失败。我认为假设Aries只支持OpenJPA是安全的,直到他们在其回归测试/样本中包含Hibernate和EclipseLink。我会观察何时/是否发生这种情况。