【问题标题】:Grails HQL vs SQL StatementsGrails HQL 与 SQL 语句
【发布时间】:2011-07-07 13:24:50
【问题描述】:

我想就使用 HQL 或 SQL 语句查询数据库的简单性、复杂性和性能提出意见。

【问题讨论】:

    标签: sql grails hql


    【解决方案1】:

    使用 HQL,您可以在基于类的域级别上进行操作,而使用 SQL 则在关系模型级别上进行操作。使用 HQL,您可以在查询和 SQL 中遍历您的域模型,您需要使用更详细的连接和连接条件创建链接。

    此外,使用 HQL 的投影更简单,因为您可以直接获取对象,而使用 SQL,您可以对关系数据进行表格视图。

    优化 HQL 更加困难,因为您需要在多个级别(域级别、Hibernate、生成的 SQL、关系模型)上进行操作,但大多数情况下您可以用更少的代码进行管理。

    SQL 结果不是类型安全的,但这在 Grails 上下文中并不像在 Java 上下文中那样重要。

    【讨论】:

    • +1。我要补充一点,使用 Hibernate 可以为您提供一级缓存(强制)和二级缓存(可选),这可以真正提高性能。
    • 不错的答案。您还可以谈论懒惰与急切的选择,如果您对 HQL 粗心,它们会真正影响性能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2011-11-03
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多