我试图在2个不同的方式来定义以一对一的关系:
的Grails 2.0.3Grails的以一对一的关系
情况1:
class Car {
String model
Engine eng
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
情况2:
class Car {
String model
static hasOne = [eng : Engine]
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
看起来相似,都提供一对一的双向映射。不幸的是DB在这两种情况下都有不同的结构
案例1:
案例2:
为什么一次车,一旦发动机保持链接到第二个表。
我的问题在哪里?从DDD的角度来看,在我看代码时,两种情况都表明Car类更重要,Car聚合引擎更重要。不幸的是,当我从案例2的数据库方面看,我宁愿说它是相反的 - 引擎集合车。当然,我可以使用第一种方法,但是我发现的关于grails的大部分出版物都是第二种定义关系的方式。也许我误解了一些东西,并用错误的方式使用hasOne?
我不知道,但,这是是映射正确的方式....因为发动机引擎类似于许多到一个,然后设置约束独特...它有任何意义吗?你可以和hasOne一起去... – 2014-04-28 06:39:58