【发布时间】:2013-04-16 23:02:28
【问题描述】:
我正在尝试在 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)。我没有收到任何错误。这是我能想到的唯一方法,无需使用任何额外的对象,我想避免使用任何额外的对象来保持模型简单。 我觉得我在正确的轨道上,但可能错过了一些重要的拼图。
任何帮助将不胜感激。
【问题讨论】:
-
您是否尝试过再次clean、exit、grails,然后run-app。有时 grails 在没有
clean的情况下不会获取您的域更改 -
在上面的第一个示例中,您缺少
Author端的hasMany属性,而在第二个示例中,Book端没有引用favouriteBooks关系。
标签: grails grails-orm