3

私は Grails と GORM を初めて使用し、「1 対多」の関係を実装しようとしています。ドキュメントの例を試しました:

class Book {
    String title
}
class Author {
    static hasMany = [books: Book]
    String name 
}

生成されるテーブルは次のとおりです。

AUTHOR
- Id (PK)
- Name

BOOK
- Id (PK)
- Title

AUTHOR_BOOK
- Author_Books_Id
- Book_Id

私はもっ​​と次のようなものを期待していました:

AUTHOR
- Id (PK)
- Name

BOOK
- Author_Id (PK)
- Book_Index (PK)
- Title

これを達成する方法はありますか (結合テーブルを取り除く)?

4

3 に答える 3

18

BookはAuthorに属することを宣言する必要があります。所属するToを使用して、作成者のid列への参照を保持するBookテーブルに外部キーがあることを宣言します。このような:

class Book {
    String title
    static belongsTo = [author: Author]
}

class Author {
    static hasMany = [books: Book]
    String name 
}
于 2012-05-17T14:24:51.453 に答える
0

それを逆にしてください。

本には著者がいます。

class Book {
    String title
    Author author
}

class Author {
    String name 
}
于 2012-05-17T14:28:16.997 に答える