优缺点:Hibernate vs. EJB 3

7

相对于Hibernate和EJB3,它们各自的优势和劣势是什么?

我找到了this这篇文章,但它并没有真正回答我的问题。如果我对这两种技术都没有特别的偏好,是什么会导致我选择其中之一?还是有情况下我会同时使用这两种技术?

谢谢, Zack

编辑:针对评论的回应:我不太了解EJB3。我只是想知道它是否适合我们公司使用。如果EJB3与Hibernate不能比较,请解释原因。


1
哇!真是个棘手的问题。我猜快速发布/缺陷修复周期的团队会赢得这一轮。只要Hibernate遵循JPA规范,这个问题就会潜伏在那里,但如果他们决定分支并加入一些非常好的功能,那么... - questzen
1
Hibernate和EJB3不可相比。相反,应该将EJB3和Spring进行比较。 - Bozho
@Bozho 我认为他想问的是Hibernate和JPA之间的区别(这经常与EJB3混淆)。 - Ken Liu
你应该澄清问题。如果你的问题是关于Hibernate和JPA的,那么请重新描述一下,因为EJB3不仅仅是JPA,你不能将整个EJB3与Hibernate进行比较。 - Pascal Thivent
1个回答

9
JPA提供了Hibernate功能的子集,但EJB3提供了Hibernate未涉及的其他服务(例如Web服务、EJBs、计时器服务)。
与Hibernate相比,JPA提供以下优点:
- 标准化API - 供应商独立性(可以在Hibernate、TopLink、OpenEJB等之间切换)
Hibernate提供以下优点:
- 广泛使用 - 实际标准 - 直接得到Spring、Grails等支持 - 可能更好的工具支持 - 比JPA更多的功能
您可以使用JPA编写EJB应用程序,然后在需要时使用Hibernate特定功能。或者,如果您不关心标准化和供应商锁定,只需使用普通的Hibernate进行持久化。实际上,您不太可能在Hibernate和另一个提供程序之间切换,但确实会发生这种情况。

吹毛求疵:Spring也支持JPA - Pascal Thivent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接