优缺点:Hibernate 与 EJB 3
Posted
技术标签:
【中文标题】优缺点:Hibernate 与 EJB 3【英文标题】:Pros & Cons: Hibernate vs. EJB 3 【发布时间】:2010-03-16 17:06:18 【问题描述】:Hibernate 和 EJB3 相对于彼此的优缺点是什么?
我找到了this 的帖子,但它并没有真正解决我的问题。如果我对这两种技术都没有任何特别的联系,那么是什么让我选择其中一种?或者在某些情况下我想同时使用两者?
谢谢, 扎克
编辑:回应 cmets:我对 EJB3 了解不多。我只是想了解这对我的公司是否可行。如果 EJB3 无法与 Hibernate 相比,请解释原因。
【问题讨论】:
哇!真的很棘手的问题。我猜发布/缺陷修复周期更快的团队会赢得这一轮。只要 hibernate 遵守 JPA 规范,这个问题就会潜伏,但如果他们决定分支并合并一些非常好的特性,那么...... Hibernate 和 EJB3 不进行比较。可以将 EJB3 和 spring 进行比较。 @Bozho 我想他的意思是 Hibernate 与 JPA(经常与 EJB3 混淆) 你应该澄清这个问题。如果您的问题是关于 Hibernate 和 JPA,请重写它,因为 EJB3 不仅仅是 JPA,而且您无法将 EJB3 作为一个整体与 Hibernate 进行比较。 【参考方案1】:JPA 提供 Hibernate 功能的子集,但 EJB3 提供 Hibernate 未解决的其他服务(例如 Web 服务、EJB、计时器服务)
与 Hibernate 相比,JPA 提供以下优势:
标准化 API 厂商独立(可以在Hibernate、TopLink、OpenEJB等之间切换)Hibernate 提供以下好处:
广泛使用 事实上的标准 来自 Spring、Grails 等的直接支持。 可能更好的工具支持 比 JPA 更多的功能您可以做的是使用 JPA 在 EJB 中编写应用程序,然后在必要时使用 Hibernate 特定的功能。或者,如果您不关心标准化和供应商锁定,则只需使用普通的 Hibernate 进行持久化。实际上,您不太可能在 Hibernate 和其他提供商之间切换,但确实会发生。
【讨论】:
Nitpick:Spring 也支持 JPA以上是关于优缺点:Hibernate 与 EJB 3的主要内容,如果未能解决你的问题,请参考以下文章