【发布时间】:2011-08-25 03:52:35
【问题描述】:
我是休眠新手。我看到一些查询示例是用 HQL 编写的,有些是使用标准和投影编写的。我四处搜索,发现关于何时使用 HQL 和何时使用标准的信息很少。哪种方式更受欢迎?为什么?
【问题讨论】:
我是休眠新手。我看到一些查询示例是用 HQL 编写的,有些是使用标准和投影编写的。我四处搜索,发现关于何时使用 HQL 和何时使用标准的信息很少。哪种方式更受欢迎?为什么?
【问题讨论】:
如果您的查询在 where 子句中需要动态数量的字段,并且您不知道先验,请使用条件。如果您的查询始终具有相同的 where 子句,但您可能会替换值,请使用 hql。
您也可以在后一种情况下使用标准。
重点是不要用一堆字符串连接动态构造你的 hql where 子句。
【讨论】:
我更喜欢 hql 而不是标准,并建议尽可能使用 hql。
使用 hql,您可以创建命名查询,这些查询在启动时进行解析,如果有错误,可以尽早提供反馈。我相信,预解析也使它们在运行时更有效率。
我还认为 hql 比标准代码更具可读性。
【讨论】: