Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 最流行的JPA实现_Hibernate_Jpa_Persistence_Eclipselink_Toplink - Fatal编程技术网

Hibernate 最流行的JPA实现

Hibernate 最流行的JPA实现,hibernate,jpa,persistence,eclipselink,toplink,Hibernate,Jpa,Persistence,Eclipselink,Toplink,我是一名初级程序员,被要求开发一个应该使用Java持久性API(JPA)的应用程序 哪个是最流行的JPA实现(Hibernate、Toplink、EclipseLink) 我可以在ApacheTomcat中使用上述任何一种方法吗,或者每个实现都与特定的服务器应用程序相关联 这门学科有什么好的入门书或教程吗?这是一个非常主观的问题。 我认为Hibernate仍然比较流行,但是对于特定的任务来说,最流行的东西不一定总是最好的 P>个人,我会在大多数项目中与Eclipse(它是TopLink的继承者)

我是一名初级程序员,被要求开发一个应该使用Java持久性API(JPA)的应用程序

哪个是最流行的JPA实现(Hibernate、Toplink、EclipseLink)

我可以在ApacheTomcat中使用上述任何一种方法吗,或者每个实现都与特定的服务器应用程序相关联


这门学科有什么好的入门书或教程吗?

这是一个非常主观的问题。
我认为Hibernate仍然比较流行,但是对于特定的任务来说,最流行的东西不一定总是最好的

P>个人,我会在大多数项目中与Eclipse(它是TopLink的继承者)进行合作——这是不必要的。JPA的参考实现具有良好的支持和定期发布,这是由Eclipse基金会驱动的,并附带了一个好的文档。
您可以在每个应用服务器上使用EclipseLink和hibernate(tomcat非常好),甚至可以单独使用(根本没有应用服务器)——JPA标准保证了这一点


如果您不使用特定于实现的东西(并且坚持使用JPA),您甚至可以与Hibernate交换EclipseLink(反之亦然),尽管我这样做的理由非常充分。

如果您选择Toplink,您将被解雇,并在桥下喝廉价伏特加,想知道您的职业生涯会是什么样子

我只听说EclipseLink很好,但我认为Hibernate有更多的行业用途,并且有一些非JPA特性


您应该能够将它们全部用于Tomcat,因为它们是Java API的实现,而不是依赖于任何容器。

这取决于具体情况。这两种解决方案都有效,但每种方案都有自己的设计决策,根据您的不同,这些决策可能对您有利,也可能对您不利

因此,我建议使用这两种技术实现一个简单但完整的原型(每种技术使用一周),以了解哪种技术更适合您。完整的方法:实现您知道需要的每个用例,尤其是复杂的用例

作为指导,我发现Hibernate有更多的特性,但Eclipse链接提供了更好的错误消息->我用更少的时间修复链接的问题

另一方面,Hibernate内置了更多的功能,因此我在那里花更少的时间将需求转化为代码——当我能够找到该功能,理解它是如何工作的,并且我没有遇到一些奇怪的错误消息,这些消息只会让我在几天的时间里陷入困境并在循环中运行


Eclipse Link曾经是一种商业产品,因此文档更好。

Eclipse Link是否与特定的服务器绑定?更重要的是,hibernate似乎是我提到的三种实现中最流行的一种。。。为什么Toplink和EclipseLink不那么受欢迎,因为它们是参考实现?请看我编辑的答案。依我看,Toplink从来都不是一个参考实现。EL不那么流行,因为hibernate是第一个——甚至在JPA标准被指定之前。但是,在看趋势时,我粗略地猜测EclipseLink可能会在几年内超过Hibernate。“你可以在每个应用服务器上同时使用EclipseLink和Hibernate”-直到你尝试在WebLogic中运行Hibernate(这是EclipseLink附带的)。显然还有其他各种JPA实现,各有利弊。阅读stackoverflow的FAQ意味着像这样的主观问题不适合本网站。建议您自己做一些研究,因为所有的实现都有非常好的文档IMHO。TopLink Essentials是JPA1的RI,EclipseLink是JPA2的RI。但是RI的意思是简单的“概念证明”,证明该规范对于轻量级JPA提供商是可实现的,我建议Java和Android都使用。