0
我有一個類別類型和一個項目類型,與中間的雙向多對多關係。這種關係的雙方都很懶惰。我想寫一個查詢,在HQL或ICriteria中執行以下操作:給定一個類別的ID,加載它的所有項目(急切地加載)這些項目的類別集合。這樣的查詢會是什麼樣子?Eagarly加載多對多的關係
我得到儘可能:
session.CreateQuery("from Category c left join fetch c.Items where c.ID = :cid")
.SetParameter("cid", ofCategory.ID)
.List();
但我無法弄清楚如何適應在急切地加載每個項目的分類收集的部分。
請注意,我已經使用NHibernateUtil.Initialize()工作。然而,爲了教育的目的,我想嘗試一種不同的方式 - 可能更優雅。因此,它目前通過對相關項目和類別情況下先調用ISession.Lock(),然後工作:
foreach (Item i in ofCategory.Items) {
if (!NHibernateUtil.IsInitialized(i.Categories))
NHibernateUtil.Initialize(i.Categories);
}