![](/img/trans.png)
[英]Grails withCriteria exception when using One-to-many relationship
[英]grails one-to-many relationship
我是新手,需要您的幫助。
我有Author和Book域類:
class Author{
static hasMany = [book:Book]
String name
//....
}
class Book{
static belongsTo = [author:Author]
String title
//....
}
域類的控制器具有“新”操作,可創建新對象並保存在db中。 在我的瀏覽器中,當我輸入... / myApp / author / new?name = myName&...時,在我的數據庫中創建作者對象,但是當我輸入... / myApp / book / new?name = title&..時,它將無法保存圖書對象,可能是因為我還沒有作者對象...
在這種情況下我該怎么辦? 如果有人知道解決方案,請幫助...
您需要輸入要關聯Book實例的作者的ID。 然后,您需要加載作者,並將其與要保存的書相關聯。
我非常確定您不能有一個名為“ new”的控制器動作。 'new'是java / groovy中的保留關鍵字。
def blah = new Blah()
當定義書belongsTo
作者,作者hasMany
書,書不能未經作者創建的。 通常,您應該執行以下操作:
當我看到您描述問題時,我認為您應該放慢腳步,並了解Grails GORM(Groovy對象關系映射)的基礎知識,您可以從“ Grails入門 ”示例開始 ,或閱讀有關以下內容的 三篇 文章: GORM陷阱 。 他們非常容易理解。
為了進行測試,您可以將一些數據加載到引導程序中:
class BootStrap {
def init = { servletContext ->
def writer = new Author(name:"Jane")
writer.save()
if(writer.hasErrors()){
println writer.errors
}
def comic = new Book(name: "superman", Author: writer)
comic.save()
if(comic.hasErrors()){
println comic.errors
}
}
def destroy = {}
}
這樣,您的應用程序中將包含作者和書籍。
另外, 本教程對我有很大幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.