2012-03-07 78 views
0

使用Grails,您可以將保存元方法附加到Domain對象。我有一個我想要保存在一起的對象列表。但是,如果其中一個出現故障,我想整個「交易」失敗:Grails - 域對象列表的休眠/驗證

while(allDomainObjects) { 
    try { 
     thisObject.save() 
    } 
    catch(...) { 
    // end transaction 
    // kill all pending that weren't flushed yet? 
    } 
} 

flushAll()? 

如果沒有失敗,我想基本上堅持已保存在「沖洗所有」的方法的所有對象。在同一級別上,如果我已經完成allDomainObjects迭代的一半,則要殺死所有這些未完成的保存,這樣就不會有任何調用持續存在。

我正在爲我的項目使用默認的Hibernate/SiteMesh圖層。我如何處理這些多域保存交易?

謝謝!

回答

0

這應該幫助你:Grails: how to structure transactions when I want to continue validating even after the transaction has already failed

在你的情況,如果你不希望保留的處理找到所有你的錯誤,你檢查每一個對象,你去通過,並返回一旦你遇到一個錯誤。據我所知,flushAll()方法不存在。

+0

美麗。正是我在找的東西 - 我做了一個快速測試,並向我的域列表中添加了一個無效對象,並且回滾已成功。謝謝! – user82302124 2012-03-07 21:46:41