我是一名初级程序员,并被要求开发一个应该使用Java Persistence API(JPA)的应用程序。
哪个是最受欢迎的JPA实现(Hibernate,Toplink,EclipseLink)
我可以在Apache Tomcat中使用上述任何一种,或者每种实现都与特定的服务器应用程序绑定吗?
这个主题是否有任何好的入门书籍或教程?
答案 0 :(得分:6)
如果您选择Toplink,您将被解雇并在一座饮用廉价伏特加的桥下度过您的日子,想知道您的职业生涯会是什么样的。
我听说EclipseLink没什么好看的,但我认为Hibernate有更多的行业用途,并且有一些非JPA功能。
您应该能够将它们全部用于Tomcat,因为它们是Java API的实现,而不是特别依赖于任何容器。
答案 1 :(得分:6)
这取决于。这两种解决方案都有效,但每个解决方案都做出了自己的设计决策,并且取决于您,这些解决方案可能对您有利或者有利于它。
因此,我建议使用这两种技术(每种技术花费一周时间)来实现一个简单但完整的原型,以便更好地了解哪一种适合您。完整的方法:实现您知道自己需要的每个用例,尤其是复杂的用例。
作为指导,我发现Hibernate有更多功能,但Eclipse Link为您提供了更好的错误消息 - >我花了更少的时间来修复Link的问题。
另一方面,Hibernate内置了更多功能,因此我花费更少的时间将需求转换为代码 - 当我找到该功能时,了解它是如何工作的,并且我没有遇到一些奇怪的错误消息只是让我感到困惑,并在圈子里跑了几天。
Eclipse Link曾经是商业产品,所以文档更好。
答案 2 :(得分:3)
这是一个非常主观的问题 我认为Hibernate仍然更受欢迎,但最受欢迎的东西并不总是最适合特定任务。
就个人而言,我会在大多数项目中使用EclipseLink(这是TopLink的继承者) - 在Eclipse基金会的推动下,以及良好的文档提供的良好支持和常规版本的JPA参考实现并非一无是处。
您可以将EclipseLink和hibernate用于每个应用程序服务器(tomcat非常好),甚至可以单独使用(根本没有应用程序服务器) - JPA标准保证。
如果你不使用特定于实现的东西(并坚持使用JPA),你甚至可以用Hibernate交换EclipseLink(反之亦然) - 尽管我只是出于非常好的理由这样做。