nHibernate HQL вопрос динамического создания - PullRequest
0 голосов
/ 21 апреля 2010

Я не могу найти, что происходит со следующим nHibernate HQL.

вот мой код VB.Net:

Return _Session.GetNamedQuery("PersonAnthroSummary").SetInt32(0, 2).UniqueResult()

Мой именованный запрос:

<sql-query name="PersonAnthroSummary">
           select New PersonAnthroSummary( Anthro.Height, Anthro.Weight ) from PersonAnthroContact as Anthro where Anthro.ID = ? 
  </sql-query>

и я импортирую класс DTO:

<import class="xxxxxxx.DataServices.PersonAnthroSummary, xxxxxxx.DataServices"/>

PersonAnthroSummary имеет конструктор, который будет принимать аргументы высоты и веса.

когда я проверяю это, nHibernate выбрасывает следующее исключение:

{"Incorrect syntax near 'Anthro'."}

и сгенерированная строка QueryString:

"select New PersonAnthroSummary( Anthro.Height, Anthro.Weight ) from PersonAnthroContact as Anthro where Anthro.ID = @p0"

Может кто-нибудь сказать мне, что я здесь не так делаю?

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Вы объявляете его как запрос SQL вместо запроса HQL.

Имя элемента должно быть <query>.

0 голосов
/ 22 апреля 2010

Я понял это. Фактическая проблема с моим классом DTO PersonAnthroSummary, который имеет конструктор, который принимает аргументы типа decimal но сопоставление PersonAnthroContact, эти 2 столбца сопоставлены с разными типами. я изменил PersonAnthroSummary конструктор, чтобы принимать эти типы вместо десятичных, затем он работает ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...