0

我有一个简单的对象层次结构,我想使用 list() 查询每个对象。问题在于,由于多态性,Task.list() 会同时返回 Task 类型和 ComplexTask 类型的实例。

class Task {
}

class ComplexTask extends Task {
}

我意识到我可以通过拥有一个通用的抽象超类来解决我的问题,或者根据返回的类型过滤结果,但我想知道是否有一种方法可以使用动态查找器并仅获取超类实例。

4

2 回答 2

2

使用默认的 table-per-hierarchy 继承策略,您可以执行以下操作:

Task.findAll("from Task as t where t.class = 'Task'")
于 2009-12-15T21:55:07.897 回答
0

我认为这与延迟加载有关,因为真正的实例没有完全加载,不仅是为了关系,而且是为了继承。

于 2009-12-16T08:40:30.270 回答