3

我是一名初级程序员,被要求开发一个应该利用 Java Persistence API (JPA) 的应用程序。

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

我可以将上述任何内容与 Apache Tomcat 一起使用,或者每个实现都与特定的服务器应用程序相关联吗?

有没有关于这个主题的好的入门书籍或教程?

4

3 回答 3

6

如果您选择 Toplink,您将被解雇并在桥下度过一天,喝着便宜的伏特加,想知道您的职业生涯会是什么样子。

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

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

于 2012-06-01T09:40:31.340 回答
6

那要看。两种解决方案都有效,但每个解决方案都做出了自己的设计决定,取决于您,这些决定可能对您有利或不利。

所以我建议使用这两种技术来实现一个简单但完整的原型(每一种都花一周时间)来了解哪一种更适合你。完整意味着:实施您知道自己需要的每个用例,尤其是复杂的用例。

作为指导,我发现 Hibernate 具有更多功能,但 Eclipse Link 会为您提供更好的错误消息 -> 我在解决 Link 问题上花费的时间更少。

另一方面,Hibernate 内置了更多功能,因此我在那里花费更少的时间将需求转化为代码 - 当我可以找到该功能时,了解它是如何工作的并且我没有遇到一些奇怪的错误消息难倒并在圈子里跑了几天。

Eclipse Link 曾经是一个商业产品,所以文档更好。

于 2012-06-01T09:50:00.593 回答
3

这是一个非常主观的问题。
我认为 Hibernate 仍然更受欢迎,但最流行的东西不一定总是最适合特定任务。

就个人而言,我会在大多数项目中使用 EclipseLink(它是 TopLink 的继任者)——它并非没有 JPA 的参考实现,它具有良好的支持和定期发布,由 Eclipse 基金会驱动并附带良好的文档。

您可以将 EclipseLink 和 hibernate 与每个应用程序服务器一起使用(tomcat 非常好),甚至可以独立使用(根本没有应用程序服务器)——JPA 标准保证了这一点。

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

于 2012-06-01T09:36:54.203 回答