用于JPA的Hibernate或EclipseLink?

我想知道是否有人有任何这些框架的JPA2.0实现经验? 特别是与Spring3.x一起提供EclipseLink支持。

您是否使用这些框架和JPA2.0中的任何一个进行生产? 任何严重的问题?

恕我直言最好尽可能使用标准API。 你自己的例子很完美地表明了 当一个提供程序无法按预期工作时,您可以在两个提供程序上尝试相同的代码。 切换到任何本机API都会阻止您执行此操作。

如果使用EclipseLink作为您的JPA 2.0提供程序适合您,那么使用它。 如果碰巧遇到问题,请提交EclipseLink错误,并在此论坛或EclipseLink论坛和新闻组中获取帮助。

EclipseLink更符合标准,因为它是JPA 2的参考实现,Hibernate有一些合规性问题,但更成熟。

EclipseLink的主要优点之一是您可以直接在JPQL查询中调用本机SQL函数。 在Hibernate中,这不可能直接实现。

但是Hibernate有一个更大的社区,更好的文档和更好的错误消息。

根据我的经验,使用Java Perf Profiling。 使用Eclipselink构建的应用程序在数据插入和检索方面似乎比Hibernate要好得多。 然而,Hibernate被更广泛地使用,并提供了更大的支持论坛。

在制作中,我会因此而采用Hibernate。

只需挑选并坚持下去。 标准只是最终的准则,每个实施者都可以相应地实施或不实施标准。

例如

另一件事是你在Spring中构建东西,你可能会采用不正确但常见的方法将类加载器更改为PARENT_LAST顺序,这样就可以使用类而不是应用程序服务器。

如果您打算采用正确的方法并使用应用程序服务器附带的JPA,请稍微警惕您的Application Server实现可能有问题。

交易明智的应用程序,特别是Spring必须为您处理事情。