0

情况:我有一个类MyClass及其“轻量级”版本MyClassLite,所以我有

public class MyClass : MyClassLite

我还使用hbm文件来映射我的类(它们被映射到同一个表)。问题是,当我尝试获取MyClassLite实体列表时,我不仅得到了MyClassLite实体,而且还得到了MyClass实体的列表。我怎样才能摆脱它?

4

2 回答 2

1

这个 ClassLite 到底是什么?为什么您的 Class 继承自 ClassLite ?这里真的存在“IS-A”关系吗?

ClassLite 存在的原因是什么?例如,当您必须显示“类”实例的概述时,它是您使用的类吗?然后,如果是这种情况,您应该查看 DTO 或“视图”、投影和 AliasToBeanEntityResultTransformer。

于 2009-10-09T10:43:57.400 回答
0

如果您在映射或查询中为列表配置预加载,您将获得 MyClass 实现。

在条件查询中:

Criteria.SetFetchmode("MyClassListProperty", Fetchmode.Eager)

在 hql 查询中:

left join fetch MyClassListProperty

在映射文件中:

<set [...] lazy="false"> ...
于 2009-10-09T10:38:55.163 回答