1

在 ORM 和 SQL 编程之间看似永恒的斗争中,出现了一个问题:为什么不两者都使用?使用 ORM 进行大部分编程,并为更复杂的 JOIN 查询和所选 ORM 无法执行的其他复杂查询编写我自己的 SQL 查询。有什么好的理由不这样做吗?

4

2 回答 2

3

大多数情况下 ORM 生成的 SQL 都没有优化。

建议在性能很重要的地方,仅使用 ORM 进行绑定,并为所有查询使用用户定义的 SQL。

于 2013-01-15T12:21:36.497 回答
2

大多数 ORM 解决方案都支持本地 SQL,例如Hibernate

不将两者结合起来的原因之一是一致性 - 如果您必须了解从数据库中检索数据并将它们转换为应用程序中的对象的两种方法,那么您要记住的次数是两倍,出现错误的机会是两倍,并且要做两倍的测试(对于“连接到数据库并检索数据”代码)。

实际情况是,不熟悉 ORM 的开发人员倾向于使用原生 SQL,而喜欢 ORM 工具的开发人员几乎可以使用 ORM 层完成所有工作——这将使您的代码库难以维护和扩展。

如果你打算这样做,我至少会强制执行“通过 ORM 工具执行 SQL,而不是直接通过 JDBC(或其他)”规则 - 这至少可以为您提供一些一致性,并且您可以重用很多对象映射功能。

不过,理想情况下,选择一个解决方案并坚持下去——对冲你的赌注很少是免费的。

于 2013-01-15T13:08:30.840 回答