我正在尝试在 Grails 中的两个域类之间实现两种不同类型的关系。
考虑以下; 我有两个域类,一个 Author 和 Book 类,一个 Author 有很多书。
class Author{
String name
}
class Book{
String title
static belongsTo = [author:Author]
}
上面描述了作者和书籍之间非常基本的一对多关系。但我也希望作者有一个最喜欢的书籍列表的概念。理想情况下,这将被表示为一个单独的一对多关系,将同一个 Book 对象描述为一个列表并保持不变。
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)。我没有收到任何错误。这是我能想到的唯一方法,无需使用任何额外的对象,我想避免使用任何额外的对象来保持模型简单。我觉得我在正确的轨道上,但可能错过了一些重要的拼图。
任何帮助将非常感激。