Grails “圣杯”;“一对多”;没有表联接的关系

Grails “圣杯”;“一对多”;没有表联接的关系,grails,gorm,grails-domain-class,Grails,Gorm,Grails Domain Class,我是Grails和GORM的新手,我尝试实现“一对多”的关系。 我在文档中尝试了以下示例: 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 我期待

我是Grails和GORM的新手,我尝试实现“一对多”的关系。 我在文档中尝试了以下示例:

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

有没有办法做到这一点(摆脱联接表)?

您应该声明该书属于作者。使用belongs,您可以声明Book表中存在外键,该表保留对Author's id列的引用。像这样:

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

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

换个方向做就行了

书有作者

class Book {
    String title
    Author author
}

class Author {
    String name 
}
课堂用书{ 字符串标题 静态belongsTo=[作者:作者] }

类作者{ 静态hasMany=[书籍:书籍] 字符串名 }