我正在將一個Grails應用程序從Oracle移植到MySQL數據庫。原始的Oracle版本是一個遺留數據庫,它使用了一些複雜的視圖,利用了Oracle不具備的MySQL INSTEAD OF INSERT OR UPDATE功能。作爲解決方法,我在指向這些視圖的域類上實現了插入和更新方法。例如,由自動失敗的自定義插入和更新方法保存
class AdminUser {
//...
def update() {
if(this.validate()) {
Sql sql = Utils.getHibernateSql()
sql.execute(
"update table_x ...",
[...]
)
sql.execute(
"update table_y ...)",
[...]
)
sql.execute(
"update table_z ...",
[...]
)
return true
}
return false
}
//...
}
這裏是我目前運行到這個問題的描述:
- 內的服務方法使用我AdminUser.get
- 我修改加載ADMINUSER的實例加載的實例和調用更新(),都顯得很好
- 一旦服務方法完成執行,由於調用實例上的某些保存事件而引發異常。
如何防止在步驟(3)中發生的魔法保存(我最近在某處讀取Grails會自動保存修改後的Domain類實例,該類實例在退出服務方法時尚未保存,但我可以現在似乎沒有找到與該資源的鏈接)?
優秀,解決了它,謝謝! – 2010-10-12 17:56:18