在下面的关系中它是一对多或多对多的关系以及为什么?

时间:2016-06-29 16:32:09

标签: grails gorm

class Face {
   static hasMany = [nose:Nose]  
} 

class Nose {
}

在上面的代码中它似乎是一对多,但我能够在db中使用GORM插入数据,这表明了多对多的关系。 映射是单向的,这是关系是一对多的唯一原因吗?

1 个答案:

答案 0 :(得分:0)

这是单向一对多的关系。但是,GORM会创建一个face_nose连接表,因此从生成的模式的角度来看,它看起来像很多关系。我认为这就是你的意思:

  

表示多对多的关系

您可以采取各种措施使表格看起来更像典型的一对多关系,例如:使它双向

class Face {
   static hasMany = [nose:Nose]  
}

class Nose {
    String name
    static belongsTo = [face: Face]
}

您应该知道上面的映射会导致删除Face级联到任何关联的Nose实例,这可能不是您想要的。