2013-03-27 81 views
2

立即之前驗證和保存查詢我的域對象:驗證成功後,會導致Grails GORM保存失敗的原因是什麼?

class MyDomain ... { 
    static belongsTo = [owner: AnotherClass] 
    ... 
} 

「主人」的設置是否正確。然後我驗證;它通過。然後我保存;它會拋出一個關於order_id爲空的異常。即使在save中使用failOnError:false也會拋出。

這發生在集成測試中。

任何想法?

+2

請提供一些代碼示例和您遇到的錯誤。 – Marco 2013-03-27 20:45:45

+0

我現在面臨同樣的問題,保存失敗,因爲對應於外鍵(id)的屬性被設置爲空。儘管id在調試時實際上是一個數字,但仍然會發生這種情況。 – 2013-03-28 03:42:06

+0

不知道這裏是否適用,但我看過類似的東西。嘗試做一個domainclass.merge(),解決了我的問題。良好的鏈接:http://grails.org/doc/2.2.0/ref/Domain%20Classes/merge.html – marko 2013-03-28 08:48:59

回答

2

即使你的情況根據保存可能會失敗的約束是有效的,因爲它依賴於數據庫。試想一下,如果您有:

class Person { 
    ... 
    Integer age 
    ... 
    static constraints = { 
    age nullable: true 
    } 
} 

和實例:

def person = new Person(age: 9999) 

而在你的數據庫表的人年齡可以有最大值。你的實例是有效的,但插入會引發錯誤。

同樣可以使用外鍵和操作取決於觸發發生。

相關問題