[英]NHibernate base and derived class mapping
情況:我有一個類MyClass及其“輕量級”版本MyClassLite ,所以我有
public class MyClass : MyClassLite
我還使用hbm文件來映射我的類(它們被映射到同一張表)。 問題是,當我嘗試獲取MyClassLite實體的列表時,不僅獲得了MyClassLite實體,而且還獲得了MyClass實體的列表。 我該如何擺脫呢?
這個ClassLite到底是什么? 為什么您的Class繼承自ClassLite? 這里真的有“ IS-A”關系嗎?
ClassLite存在的原因是什么? 例如,當您必須顯示“類”實例的概述時,該類是您使用的類嗎? 然后,如果是這種情況,則應查看DTO或“視圖”,投影和AliasToBeanEntityResultTransformer。
如果在映射或查詢中為列表配置緊急加載,則將獲取MyClass實現。
在條件查詢中:
Criteria.SetFetchmode("MyClassListProperty", Fetchmode.Eager)
在hql查詢中:
left join fetch MyClassListProperty
在映射文件中:
<set [...] lazy="false"> ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.