我有一个在nhibernate中映射的问题。我使用的是nhibernate 2.2版本。试图用同一张表映射几个包 - 未能懒洋洋地初始化一个角色异常集合
似乎问题是在映射,但我不知道这是什么原因。无论如何,我有两张我想要绘制的表格。我为第一个表和一个数据传输对象创建了一个hbm文件。所有列都被映射,并且在这里一切正常。
但是,现在我想为这个班级添加三个行李,这个行李将指向同一个表格,我想要连接的第二个表格。我创建了包并映射了所有内容,但是当我检索我的数据时,只有其中一个包被填充,而其他包被填充为空,并且出现错误“未能延迟初始化角色集合:com.organic.mitsu .hib.ModelContent.options - 没有会话或会话已关闭“。我100%肯定我的数据库数据是好的。当我从地图上移除两个行李时,一切正常,只剩一个行李。这里是HBM文件:
<class name="MyFirstClass" table="MyFirstTable">
<id name="ID">
<generator class="native" />
</id>
<property name="ItemOne" />
<property name="ItemTwo" />
<property name="ItemThree" />
<property name="ItemFour" />
<bag name="FirstItems" table="MySecondTable">
<key column="ItemID" property-ref="ItemOne"/>
<one-to-many class="Items" not-found="ignore"/>
</bag>
<bag name="SecondItems" table="MySecondTable">
<key column="ItemID" property-ref="ItemTwo"/>
<one-to-many class="Items" not-found="ignore"/>
</bag>
<bag name="ThirdItems" table="MySecondTable">
<key column="ItemID" property-ref="ItemThree"/>
<one-to-many class="Items" not-found="ignore"/>
</bag>
我应该如何解决这个问题?这甚至有可能这样做吗?
这里是为MySecondTable映射:
<class name="Item" table="MySecondTable">
<id name="ID">
<generator class="assigned" />
</id>
<property name="ItemID" />
<property name="Language" />
<property name="Value" />
其实,我试图映射原来事情是复合元素,而无需MySecondTable的映射。我只有一个dto类Item,带有ItemID和Value列。我得到了同样的错误,并映射如下所示:
<class name="MyFirstClass" table="MyFirstTable">
<id name="ID">
<generator class="native" />
</id>
<property name="FirstItem" />
<property name="SecondItem" />
<property name="ThirdItem" />
<bag name="FirstItemNames" table="MySecondTable">
<key column="ItemID" property-ref="FirstItem"/>
<composite-element class="Item">
<property name="Value" />
</composite-element>
</bag>
<bag name="SecondItemNames" table="MySecondTable">
<key column="ItemID" property-ref="SecondItem"/>
<composite-element class="Item">
<property name="Value" />
</composite-element>
</bag>
<bag name="ThirdItemNames" table="MySecondTable">
<key column="ItemID" property-ref="ThirdItem"/>
<composite-element class="Item">
<property name="Value" />
</composite-element>
</bag>
什么是MySecondTable的映射? – apollodude217 2010-07-29 16:20:01