GORM マッピングの特殊性に遭遇しました。
私がテーブルごとに期待しているのは
models
designs (model_id -> models.id)
categories
categories_design (category_id, design_id)
デザインで model_id を取得するには、マップ構文を使用します
static belongsTo = [model:Model]
だから今、デザインとカテゴリーの間にも hasMany 関係があり、所有側はデザインです。
GORM マニュアルには、非マップ構文を使用して所有側を示すように記載されています
static belongsTo = Category
しかし、マップ表記を使用するデザインからモデルへの逆参照も必要です。
私の質問は、2つのケースをどのように混合するのですか?
私はデザインで試しました:
static belongsTo = [model:Model, category:Category]
これにより、実行時エラーが発生します - 多対多の関係にあるドメイン クラス Category と Design の間に所有者が定義されていません。
static belongsTo = [model:Model, Category]
これにより、コンパイル エラーが発生します。
static belongsTo = [Model, Category]
予想される model_id がデザインで作成されず、代わりに、models_designs のまったく新しいテーブルが作成されますが、これは正しくありません。しかし、すべてがコンパイルされて実行されます。