2011-03-21 71 views
2

有沒有辦法改變grails中static hasMany = [myList: Stuff]定義的數據類型?我試圖將[hasMany:]引用的數據類型更改爲列表?

List<Stuff> myList 
hasMany = [myList : Stuff] 

,但是現有的測試開始嘔吐

Stuff._MyContainer_mylistBackref; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value

這表明兩者並非在他們是如何被處理方面等同。我在這裏做錯了什麼?

+0

需要更多關於異常上下文的信息'hasMany'的'List'對我來說工作得很好 – 2011-03-21 16:36:57

+0

我的這個行爲應該和[myList:Stuff]不一樣嗎?如果我需要一個集合,這個工作正常,讓我相信更大的代碼段是好的 – 2011-03-21 17:12:59

+0

是不是你的myList只設置爲null並且永遠不會被初始化?它不應該讀取列表 myList = []? – julkiewicz 2011-03-21 23:01:32

回答

3

5.2.4 of the Grails manual部分所述,這是使集合成爲List的正確方法。

我懷疑問題是,默認情況下,限制nullable(false)適用於所有域類屬性,並且您試圖爲此屬性保存空值。爲了解決這個問題,添加一個約束,使這個屬性爲空(如果那是你想要

List myList 
static constraints = { 
    myList(nullable: true) 
} 

什麼或者,確保之前驗證/保存對象的屬性不爲null。

+0

我只使用addToMyList dyn amic方法,所以不應該自動解決? – 2011-03-22 16:33:49

相關問題