Custom SQL NHibernate
От: Geny Украина  
Дата: 16.12.09 10:30
Оценка:
Имею вот такой меппинг:
  <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

и естественно не работает потому что такой таблицы нет.

Кто подскажет, что я неправильно делаю

Спасибо.
Заранее спасибо...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.