Имею вот такой меппинг:
<class name="ClassTable" table="Table">
<id name="Id" column="id">
<generator class="native"/>
</id>
<property name="Shortname" column="SHORTNAME" not-null ="false" insert ="false" update ="false"/>
<loader query-ref="myQuery"/>
</class>
<sql-query name="myQuery">
<return alias="tab" class="ClassTable">
<return-property name="Id" column="myId"></return-property>
<return-property name="Shortname" column="myShortname"></return-property>
</return>
select tab.id as myId, tab.SHORTNAME as myShortname
from Table tab where tab.id = ? order by tab.SHORTNAME
</sql-query>
Я думаю что при выполнении session.CreateCriteria мне вернется заполненный объект так как я определил в "myQuery", но мне возвращается заполненный объект просто как
SELECT * FROM Table
а если я меняю меппинг, на такой
<class name="ClassTable">
<id name="Id" column="id">
<generator class="native"/>
</id>
<property name="Shortname" column="SHORTNAME" not-null ="false" insert ="false" update ="false"/>
<loader query-ref="myQuery"/>
</class>
<sql-query name="myQuery">
<return alias="tab" class="ClassTable">
<return-property name="Id" column="myId"></return-property>
<return-property name="Shortname" column="myShortname"></return-property>
</return>
select tab.id as myId, tab.SHORTNAME as myShortname
from Table tab where tab.id = ?
</sql-query>
т.е. убираю свойство table="Table", то NHibernate строит неправильный SQL запрос:
SELECT * FROM ClassTable
и естественно не работает потому что такой таблицы нет.
Кто подскажет, что я неправильно делаю
Спасибо.