有一種方法可以臨時禁用特定域類的beforeInsert事件嗎?我需要執行以下步驟:GORM - 暫時禁用beforeInsert事件
- 禁用beforeInsert的執行;
- 在對象中執行一種saveAs例程;
- 重新啓用beforeInsert的執行。
saveAs例程在特定對象中執行深克隆並使用相同數據創建新對象。看到這個答案,瞭解克隆:How can I duplicate a domain object in Grails?
原因禁用beforeInsert:由於對象被克隆內beforeInsert的代碼被執行另存程序時並不需要執行。
的Grails版本:2.5.0
更新
我忘了提,我想避免改變我的域類來實現這一行爲。
嗨@cantoni,didi你找到最好的解決方案? –
不幸的是,@HemãVidal。我的解決方案是避免使用beforeInsert事件。我的saveAs例程比beforeInsert中執行的代碼重要得多。 – cantoni
我認爲這是一個概念問題: 如果.save()方法在某些情況下有所不同,控制器必須執行此操作並從域中刪除此行爲。 –