2011-10-14 162 views
0

我有一個非Grails特定問題,但我打算用它來實現它。不管怎麼說,我想有一個一對多的域類關係,但我希望很多部分是幾種不同的類型。Grails - 多對象數據庫關係

例如: 域Class Man將有幾個Friends(這是我們的1對多的關係),但友位可能是另一種Man其特定套的方法和屬性,或Dog,或Monster,等

我瀏覽過網頁,但不知道如何正確命名我正在尋找什麼。 任何幫助極大讚賞

+0

「但朋友位可能是另一個具有特定方法和屬性集的人,或者狗或怪物等。」你能解釋一下嗎? – erimerturk

+0

嗨, 我想創建一個1 t很多的關係,但希望很多部分不是一個固定類型。我希望能夠爲存儲在關係多方的對象分配幾種可能的類型。 在我上面的例子中,一個男人會擁有一個場友,而一個朋友可以是怪物,寵物或男人類型。 有關如何實現這一點的任何猜測以及它涉及哪些技術? –

+0

好吧我一直在受其他一些東西的影響,但是我會在實施它時回到你身邊:) –

回答

1

你能試試嗎?我不確定%100,但你應該這樣做。你需要一個繼承接口。

interface Alive{ 
     //just definition 
    } 

class Friend implements Alive { 

//definition 
} 

class Pet implements Alive{ 
//definition 
} 

Person{ 
static hasMany = [ alives: Alive] 
} 
+0

看起來不錯:) 謝謝。我知道在GORM中繼承的一個限制是你不能允許'可空'字段。我會檢查它,嘗試實施它,並回到你的反饋如何去。 再次感謝! –

+0

你可以在我想的繼承中有可空字段。您需要使用table-per-subclass而不是默認的每個層次結構設置。指定靜態映射= {tablePerHierarchy false}。更多信息請參見第5.5.2.3節:http://grails.org/doc/latest/guide/single.html#5.5.2%20Custom%20ORM%20Mapping –