0

我正在像这样在 hbm 文件中编写 HQL

<query name="GetFabric">
        <![CDATA[Select F.FabricName,FS.FabricSeasonName from Fabric F,FabricSeason FS where F.FabricSeasonID=FS.ID]]>
    </query>

但是我们可以在代码文件中编写查询,那么编写 HQL(HBM 文件或代码文件)的更好方法是什么

4

3 回答 3

6

我将 HQL 嵌入文件的主要原因HBM很简单:-

构建会话工厂时解析/检查/缓存 HQL 元数据

这意味着如果您有错误,您将在代码启动时了解它们。HQL 也被缓存并准备好运行。在代码中使用 HQL 意味着在第一次运行时需要解析和缓存 HQL,因此第一次运行代码会稍微慢一些。

于 2012-05-11T05:19:26.653 回答
0

如果只需要在单个函数中执行查询,我会将其嵌入代码中,但是如果我需要在不同的项目/类中运行此查询,则将其放入 hbm.xml

于 2012-05-11T04:57:57.647 回答
0

放置在 Hibernate 映射文件中的命名查询是:

  • 比分散在 Java 代码中的查询更容易维护
  • 全局可访问,因此您可以一次定义一个查询并在代码中多次使用它
  • 更安全,它们可以防止 SQL 注入攻击
于 2012-05-11T05:09:22.057 回答