gpt4 book ai didi

grails - 多对多不坚持在 gorm/grails 应用程序中

转载 作者:行者123 更新时间:2023-12-02 09:53:08 28 4
gpt4 key购买 nike

我的 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()

创建了正确的表(app、app_category 和 app_categories),并且所有列看起来都很好,但我最终在关联表中没有任何记录,也没有错误。 app_category 表和 app 表已正确填充。

我需要手动管理关联表的域对象吗?或者更好的是,我只是错过了一些完全明显的东西吗?

最佳答案

好吧,上面的示例中没有表示的一件事是,您没有为 App 实例命名,即使它是必填字段(grails 字段默认为 nullable:false ,除非您明确告诉它)否则)。我打赌如果你检查的话

app.hasErrors()

在你的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()

关于grails - 多对多不坚持在 gorm/grails 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903214/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com