我有一个非Grails特定问题,但我打算用它来实现它。不管怎么说,我想有一个一对多的域类关系,但我希望很多部分是几种不同的类型。Grails - 多对象数据库关系
例如: 域Class Man
将有几个Friends
(这是我们的1对多的关系),但友位可能是另一种Man
其特定套的方法和属性,或Dog
,或Monster
,等
我浏览过网页,但不知道如何正确命名我正在寻找什么。 任何帮助极大赞赏
我有一个非Grails特定问题,但我打算用它来实现它。不管怎么说,我想有一个一对多的域类关系,但我希望很多部分是几种不同的类型。Grails - 多对象数据库关系
例如: 域Class Man
将有几个Friends
(这是我们的1对多的关系),但友位可能是另一种Man
其特定套的方法和属性,或Dog
,或Monster
,等
我浏览过网页,但不知道如何正确命名我正在寻找什么。 任何帮助极大赞赏
你能试试吗?我不确定%100,但你应该这样做。你需要一个继承接口。
interface Alive{
//just definition
}
class Friend implements Alive {
//definition
}
class Pet implements Alive{
//definition
}
Person{
static hasMany = [ alives: Alive]
}
看起来不错:) 谢谢。我知道在GORM中继承的一个限制是你不能允许'可空'字段。我会检查它,尝试实施它,并回到你的反馈如何去。 再次感谢! –
你可以在我想的继承中有可空字段。您需要使用table-per-subclass而不是默认的每个层次结构设置。指定静态映射= {tablePerHierarchy false}。更多信息请参见第5.5.2.3节:http://grails.org/doc/latest/guide/single.html#5.5.2%20Custom%20ORM%20Mapping –
“但朋友位可能是另一个具有特定方法和属性集的人,或者狗或怪物等。”你能解释一下吗? – erimerturk
嗨, 我想创建一个1 t很多的关系,但希望很多部分不是一个固定类型。我希望能够为存储在关系多方的对象分配几种可能的类型。 在我上面的例子中,一个男人会拥有一个场友,而一个朋友可以是怪物,宠物或男人类型。 有关如何实现这一点的任何猜测以及它涉及哪些技术? –
好吧我一直在受其他一些东西的影响,但是我会在实施它时回到你身边:) –