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 に答える