我试图以两种不同的方式定义一对一的关系:
Grails 2.0.3
情况1:
class Car {
String model
Engine eng
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
案例二:
class Car {
String model
static hasOne = [eng : Engine]
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
看起来很相似,并且都提供一对一的双向映射。不幸的是,DB 在这两种情况下都有不同的结构。
情况1:
案例二:
为什么一次 Car 和一次 Engine 保持链接到第二个表。
我的问题在哪里?当我查看代码时,从 DDD 的角度来看,这两种情况都表明 Car 类更重要,而 Car 聚合了 Engine。不幸的是,当我从数据库方面看案例 2 时,我宁愿说它是相反的 - 引擎聚合汽车。当然我可以使用第一种方法,但是我看到的大多数关于 grails 的出版物都是定义关系的第二种方法。也许我误解了一些东西,我以错误的方式使用 hasOne?