dan*_*anb 2 grails many-to-many grails-orm
我的grails 1.1应用程序中大致有以下内容
class AppCategory {
static belongsTo = App
static hasMany = [ apps: App ]
String name
}
class App {
static hasMany = [ categories: AppCategory]
String name
}
App app = new App()
AppCategory appCat = AppCategory.findByName('blah')
app.addToCategories(appCat)
app.save()
Run Code Online (Sandbox Code Playgroud)
创建了正确的表(app,app_category和app_categories)并且列都显示正常,但我不会在关联表中找到任何记录而且没有错误.app_category表和app表已正确填充.
我是否需要手动管理关联表的域对象?或者更好的是,我只是错过了一些完全明显的东西吗?
好吧,上面示例中没有表示的一件事是你没有为你的App实例命名,即使它是必填字段(grails字段可以为空:默认为false,除非你明确告诉它).我打赌,如果你检查
app.hasErrors()
Run Code Online (Sandbox Code Playgroud)
在你的app.save()之后,你会看到它确实有你可以在app.errors集合中列出的错误.
否则,你有什么是好的,这个代码适用于我上面的域对象:
AppCategory appCat = new AppCategory(name: "blah")
appCat.save()
assert !appCat.hasErrors()
App app = new App(name: "testApp")
app.addToCategories(appCat)
app.save()
assert !app.hasErrors()
Run Code Online (Sandbox Code Playgroud)