以下内容来自NHibernate文档:
15.4。用于加载的自定义SQL您还可以为实体加载声明自己的SQL (或HQL)查询:
<sql-query name="person">
<return alias="pers" class="Person" lock-mode="upgrade"/>
SELECT NAME AS {pers.Name}, ID AS {pers.Id}
FROM PERSON
WHERE ID=?
FOR UPDATE
</sql-query>
这只是一个命名的查询声明,如前所述。您可以在类映射中引用此命名查询:
<class name="Person">
<id name="Id">
<generator class="increment"/>
</id>
<property name="Name" not-null="true"/>
<loader query-ref="person"/>
</class>
没有给出使用HQL的示例。我试图简单地用<sql-query>
替换<query>
,然后用HQL查询替换SQL查询。这导致异常“命名SQL查询未知”。有没有办法告诉它寻找HQL查询而不是SQL查询?