Grails の 2 つのドメイン クラス間に 2 つの異なるタイプの関係を実装しようとしています。
以下を検討してください。Author クラスと Book クラスの 2 つのドメイン クラスがあり、Author には多くの本があります。
class Author{
String name
}
class Book{
String title
static belongsTo = [author:Author]
}
上記は、Author と Book の間の非常に基本的な 1 対多の関係を示しています。しかし、私は Author にお気に入りの本のリストという概念も持たせたいと思っています。これは理想的には、同じ Book オブジェクトをリストとして記述し、そのように永続化する個別の 1 対多の関係として表されます。
class Author{
String name
static hasMany = [favouriteBooks: Book]
static mapping = {
favouriteBooks joinTable: [name: 'favourite_books',
key: 'author_id']
}
}
class Book{
String title
static belongsTo = [client:Client]
}
これを上記のように (他の多くの方法の中でも) 記述しようとしましたが、最終的にデータベース テーブル (favourite_books) は作成されません。エラーは発生しません。これは、モデルをシンプルに保つために避けたい余分なオブジェクトを使用せずにこれを行う唯一の方法です。正しい軌道に乗っていると感じていますが、パズルの重要なピースが欠けている可能性があります。
どんな助けでも大歓迎です。