NHibernate Custom HQL для загрузки - PullRequest
2 голосов
/ 04 мая 2010

Следующее из документации 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>, а затем заменить запрос SQL на запрос HQL. Это приводит к исключению «Именованный SQL-запрос не известен». Есть ли способ заставить его искать HQL-запрос вместо SQL-запроса?

...