2009-12-15 38 views
0

我有一個簡單的對象層次結構,我想使用list()查詢每個對象。問題在於,由於多態性,Task.list()返回Task和ComplexTask類型的實例。GORM list()僅返回超類對象

class Task { 
} 

class ComplexTask extends Task { 
} 

我知道我可以有一個共同的抽象超類,或基於返回式過濾結果解決我的問題,但不知道是否有使用動態查找,只拿回超實例的方式。

回答

2

使用默認的表每層次繼承策略,你可以做這樣的事情:

Task.findAll("from Task as t where t.class = 'Task'") 
+0

+1。謝謝 - 你是對的,我應該提到我正在嘗試使用tablePerHierarchy = false,儘管我可能會切換到另一個,因爲我期望有相對較少的超類對象。 – 2009-12-15 23:16:29

0

我覺得有延遲加載做的,因爲真正的情況是不是不僅完全加載關係,但也爲繼承。