2011-10-14 163 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 –