JOOQ和Hibernate的比较

31
当我在聊天中与stackoverflowers交谈并阅读有关Java数据库的其他教程时,他们指导我使用JOOQ而不是HIBERNATE
我完全了解Hibernate的ORM,并且我更喜欢使用Hibernate,现在通过阅读教程和在小项目上实现,已经对JOOQ有所了解。
但我很困惑该选择什么,对于可能更大、中等或更小的动态Web应用程序,Hibernate还是JOOQ更好?
顺便说一句,我搜索了很多但越来越困惑...!!!
就像:this, thisthis一样。
哪一个最适合开发者的不同情况和情况?

亲爱的@NeilStockton,这完全是主观的,我知道Stackoverflow上的每个术语。 - Gopal00005
我只需要专家的建议,请帮帮我... - Gopal00005
一个有用的问题。+1。 - Raúl
1个回答

41
虽然jOOQ和Hibernate面向同样的目标用户,但它们解决的问题完全不同。这篇文章已经链接在你的问题中了。它的要点很简单:
  • 如果要解决对象图持久化问题,则使用ORM(例如Hibernate)
  • 如果要将SQL嵌入到Java中,则使用SQL(例如jOOQ)
当然,由于两个API都涵盖访问关系数据库的功能,它们在某种程度上具有重叠的功能。例如,Hibernate还支持简单的查询,而jOOQ也支持简单的映射。 尽管我们应该避免深入主观讨论对象图持久化或SQL是与数据库交互的更好方法,但我认为以上是对哪个API更适合的一个相当客观的答案,一旦你已经做出了主观决定。 而且:你可以同时使用ORM/Hibernate进行CRUD操作,同时使用SQL/jOOQ进行报表操作。 (声明:我为jOOQ公司工作,因此这个答案存在偏见)

1
为什么我需要使用JOOQ进行报告,请您能更详细地阐述一下吗?这将对我非常有帮助。 - Gopal00005
8
报表利用了许多高级的 SQL 特性。当然,你仍可以使用 Hibernate/HQL/JPQL,但如果使用普通 SQL 编写报表,它们将更快且更易于维护... - Lukas Eder
1
没错,@Lukas Eder先生,我创建了这个问题,以便更清楚地解决关于JOOQ和Hibernate的许多困惑,现在我对您的答案非常满意,希望它也能对其他人有所帮助。 - Gopal00005
1
定价可能在决策过程中也起到一定作用。如果您正在使用非开源数据库(Oracle、MSFT等),则必须支付每年99美元的开发人员费用才能使用JOOQ。而Hibernate没有这样的要求。 - justin.hughey
4
在做决策时,大多数人会依赖于他们认为是确定的知识(成本分析)。在这里唯一确定的是那些人应该阅读丹尼尔·卡尼曼的《思考,快与慢》。卡尼曼生动地展示了我们对“损失”(“成本”)的恐惧如何以非常不利的方式影响我们的决策。此外,现在已经清楚,我们不再讨论具体的成本,而是试图表达观点,这与这个 Stack Overflow 的问题有些脱离。 - Lukas Eder
显示剩余4条评论

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