3

我遇到了 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 表,这是不正确的。但一切都编译并运行。

4

1 回答 1

0

如果您在 Design 和 Category 之间有 hasMany 关系,并且 Design 是拥有方,您是否应该没有

static hasMany = [category: Category] in Design class 

static belongsTo = Design in Category class.

这样,你仍然可以保持

static belongsTo = [model:Model]

在设计课上。

于 2012-11-05T19:29:07.903 回答