我在GORM制图中遇到了一个特点。
我期望的表格是
models
designs (model_id -> models.id)
categories
categories_design (category_id, design_id)
要在设计中获得model_id,我会使用地图语法
static belongsTo = [model:Model]
现在,我在Design和Category之间也有一个hasMany关系,而拥有的一面是Design。
GORM手册表示使用非地图语法表示拥有方
static belongsTo = Category
但是,我还需要使用地图表示法从设计到模型的后向引用。
我的问题是你如何混合2个案例?
我在设计中尝试过:
static belongsTo = [model:Model, category:Category]
这会产生运行时错误 - 在多对多关系中没有在域类别和设计之间定义所有者。
static belongsTo = [model:Model, Category]
这会产生编译错误。
static belongsTo = [Model, Category]
预期的model_id不是在Design中创建的,而是创建了models_designs的全新表,这是不正确的。但是一切都在编译和运行。
答案 0 :(得分:0)
如果您在设计和类别之间存在hasMany关系,而设计是拥有方,那么您是否应该
static hasMany = [category: Category] in Design class
和
static belongsTo = Design in Category class.
通过这种方式,你仍然可以保持
static belongsTo = [model:Model]
在Design类中。