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