我无法找到以下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"
有人可以告诉我这里我做错了吗?
答案 0 :(得分:1)
您将其声明为SQL查询而不是HQL查询。
元素名称应为<query>
。
答案 1 :(得分:0)
我明白了。我的DTO类PersonAnthroSummary的实际问题,它有一个构造函数,它接受十进制类型的参数。但是PersonAnthroContact映射,那些2列映射到dirrefent类型。我改变了PersonAnthroSummary构造函数来取代小数,然后它的工作....