作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这四个类:
class Animal {
static hasMany = [legs: Leg]
}
class Cat extends Animal {
static hasMany = [legs: CatLeg] // Should I remove this line?
}
class Leg {
static belongsTo = [animal: Animal]
}
class CatLeg extends Leg {
static belongsTo = [animal: Cat] // Should I remove this line?
}
最佳答案
这取决于您的休眠设置。在Grails中,默认情况下,Hibernate将对象的层次结构映射到1个表中(每个表的层次结构)。这意味着,您无需在子类中再次声明引用。 GORM层将注意正确的类(Leg vs. CatLeg)。
通常,我建议完全避免对象层次结构,而应将其替换为composition,特别是如果您具有引用对象的层次结构。我认为,如果将来需求发生变化,您可能会遇到麻烦,即将数据迁移到新模型中。
关于grails - 在Grails子类中重写overrideTo/hasMany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21836161/
我是一名优秀的程序员,十分优秀!