在hbm文件中编写HQL有什么好处?

nav*_*pta 0 c# nhibernate

我在这样的hbm文件中编写HQL

<query name="GetFabric">
        <![CDATA[Select F.FabricName,FS.FabricSeasonName from Fabric F,FabricSeason FS where F.FabricSeasonID=FS.ID]]>
    </query>
Run Code Online (Sandbox Code Playgroud)

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

Rip*_*ppo 6

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

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

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