我有一个包含这些列的表T1:
带有列的第二个表T2:
来自T1的每条记录在T2中都有> 2条记录:T1中的参考列具有来自T2表,T2ID列的值。
如何为此方案编写映射文件? 目前我用这个:
<class name="Class1" table="T1" >
<id name="ID" column="ID">
<generator class="increment"/>
</id>
<property name="Name"/>
<set name="Data" inverse="true" fetch="select">
<key>
<column name="T2ID"/>
</key>
<one-to-many class="Class2"/>
</set>
</class>
<class name="Class2" table="T2" >
<id name="ID" column="T2ID">
<generator class="increment"/>
</id>
<property name="Value1"/>
<property name="Value2"/>
<property name="SomeOtherData"/>
</class>
代码中的我有这个加载T1的T2数据:
NHibernateUtil.Initialize( class1.Data );
哪个生成此SQL:
SELECT
T2ID, Value1, Value2, SomeOtherData
FROM T2
WHERE T2ID = <**an ID column from T1 for which I'm loading T2 data!**>
问题是如何告诉nHibernate使用Ref列中的值来加载Data属性,而不是PK?
干杯, 亚历
答案 0 :(得分:1)
据我所知,这不受支持。 property-ref元素允许您从“多”方面映射此类关系,但没有相应的映射“一”方。
解决方法是为T1创建一个包含T2ID的视图,并映射而不是表格。