2
我有一个与NHibernate映射的类,我试图使用自定义的SQL查询加载。特别的是,它使用了一个复合身份证,但我希望这不是问题。NHibernate与自定义加载器映射不起作用
这里是映射的简化版本:
<class name="Person" mutable="false">
<composite-id>
<key-property name="PropertyA" column="propA" type="int" />
<key-property name="PropertyB" column="propB" type="string" />
</composite-id>
<property name="PropertyC" column="propC" type="datetime" />
<loader query-ref="loadPersons" />
</class>
<sql-query name="loadPersons">
<return class="PV" />
<![CDATA[
SELECT propA, propB, propC FROM MyPersons
]]>
</sql-query>
的问题是,装载机被完全忽略。
SELECT this_.propA, this_.propB, this_.propC FROM Person this_
这显然导致错误:表或视图不存在(因为“人”只是我们干净名)发送到数据库的查询,就好像<loader>
元素不会在那里被完全生成。
任何人都知道这是否与composite-id有关,或者是否有另一个原因,为什么loader会被忽略?
请注意,在返回数据时也可能有错误。我已经看到有一个特殊的别名语法,但我无法弄清楚之前,装载机实际上是做什么...
看起来不错。虽然没有测试过。我会接受... – Koen 2012-03-08 10:51:47