我遇到了 GORM 映射的特殊性。
我对表格的期望是
models
designs (model_id -> models.id)
categories
categories_design (category_id, design_id)
要在设计中获得 model_id,我会使用 map 语法
static belongsTo = [model:Model]
所以现在,我在 Design 和 Category 之间也有一个 hasMany 关系,并且拥有方是 Design。
GORM 手册说使用非映射语法表示拥有方
static belongsTo = Category
但是,我还需要从设计到使用地图符号的模型的反向引用。
我的问题是你如何混合这两种情况?
我在设计中尝试过:
static belongsTo = [model:Model, category:Category]
这会出现运行时错误 - 在多对多关系中的域类 Category 和 Design 之间没有定义所有者。
static belongsTo = [model:Model, Category]
这会产生编译错误。
static belongsTo = [Model, Category]
在设计中没有创建预期的 model_id,而是创建了一个全新的 models_designs 表,这是不正确的。但一切都编译并运行。