这2个hasOne语法有什么区别?
class Project {
.......
............
static hasOne = Employee
// static hasOne = [employee:Employee]
}
我注意到第一个创建了多对多关系(3个表),但是应该像我在Employee类中那样是多对一(2个表):
static hasMany = [projects:Project]
第二个工作正常:
static hasOne = [employee:Employee]
我正在使用Grails 2.2.0,甚至在Grails 2.0.3中尝试过,但结果是相同的。
谢谢
最佳答案
我认为第一变种根本没有任何意义。您可以在不指定字段的情况下定义belongsTo
反向引用,例如,它可以用于级联事情。hasOne
的情况恰好相反:您想要一个明确的一对一,这使得逻辑地明确指定引用是合理的:
static hasOne = [employee:Employee]
使用
hasOne
的最常见情况是当您想要建立一对一关系,但又不想修改所引用的域类时,因此不必引入更多的复杂性和/或迁移旧桌子。在我看来,第一种变体是无用的,并且不会由于...缺少GORM开发人员时间而产生错误。 ;)
关于grails - Grails hasOne关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28009266/