我有一個在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