mro*_*rok 9 database grails grails-orm
我尝试用两种不同的方式定义一对一的关系:
Grails 2.0.3
情况1:
class Car {
String model
Engine eng
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
Run Code Online (Sandbox Code Playgroud)
案例2:
class Car {
String model
static hasOne = [eng : Engine]
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
Run Code Online (Sandbox Code Playgroud)
看起来很相似,都提供一对一的双向映射.不幸的是DB在两种情况下都有不同的结构
情况1:

案例2:

为什么一旦Car和一次引擎保持链接到第二个表.
我的问题在哪里?当我查看代码时,从DDD的角度来看,两种情况都表明Car类更重要,Car聚合引擎.不幸的是,当我从DB侧看案例2时,我宁愿说它是相反的 - 引擎聚合汽车.当然我可以使用第一种方法,但我看到的关于grails的大多数出版物,提出了定义关系的第二种方式.也许我误解了一些东西而且我错误地使用了hasOne?