情况: 我有一个 MyClass 类及其“轻量级”版本 MyClassLite ,所以我有
public class MyClass : MyClassLite
我还使用 hbm 文件来映射我的类(它们映射到同一个表)。 问题是,当我尝试获取 MyClassLite 实体的列表时,我不仅得到 MyClassLite 实体,而且还得到 MyClass 实体的列表。我怎么能摆脱那个?
答案 0 :(得分:1)
这个ClassLite究竟是什么?为什么你的Class继承自ClassLite?这里真的有“IS-A”关系吗?
ClassLite存在的原因是什么?例如,当您必须显示“类”实例的概述时,它是否是您使用的类? 然后,如果是这种情况,你应该看看DTO或'Views',Projections和AliasToBeanEntityResultTransformer。
答案 1 :(得分:0)
如果您为映射或查询中的列表配置了预先加载,您将获得MyClass实现。
在条件查询中:
Criteria.SetFetchmode("MyClassListProperty", Fetchmode.Eager)
在hql查询中:
left join fetch MyClassListProperty
在映射文件中:
<set [...] lazy="false"> ...