関連
関連の設定について。5.2.1 Association in GORMのあたり。
One-to-one
また今度。
One-to-many
Author(one)とBook(many)だとこんな感じ書きます。
class Author { static hasMany = [ books : Book ] String name } class Book { Author author String title }
これだと片方向(Author -> Book)の関連のみなので、Bookが存在する場合にはAuthorは外部キー制約で削除できないです。scaffoldingでできるアプリで試してみたら例外はログのみで画面上は削除されないだけでした。
class Book { static belongsTo = [author:Author] String title }
Bookの方にbelongsToを追加すると連鎖削除されるようになります(そういうテーブルと制約が自動生成されているんだと思います。この辺も調べてみたいです)。
Many-to-many
Many-to-manyは、上記の例ではAuthorとBook両方のクラスにhasManyを設定すればよいのですが、現在のscaffoldingでは対応していないとのこと。