nHibernate HQL动态实例化问题

时间:2010-04-20 21:55:27

标签: vb.net nhibernate hql

我无法找到以下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 个答案:

答案 0 :(得分:1)

您将其声明为SQL查询而不是HQL查询。

元素名称应为<query>

答案 1 :(得分:0)

我明白了。我的DTO类PersonAnthroSummary的实际问题,它有一个构造函数,它接受十进制类型的参数。但是PersonAnthroContact映射,那些2列映射到dirrefent类型。我改变了PersonAnthroSummary构造函数来取代小数,然后它的工作....