我一直在努力解決這個錯誤一個星期了,而且我正在認真地對此失去理智!我已經嘗試了multible的實現和解決方法,並且還沒有做什麼,但是我只是將它保存爲另一個異常。Grails:從後臺線程訪問GORM
我使用的執行人插件運行asynchroniously的方法:
runAsync{
run(...)
}
的方法最初刪除一些對象:
page.delete(flush:true)
再後來可能重新創建這些對象:
def page = new Page(type : Page.TYPE_TABLE, domain : domainVersion.domain, identifier : tableName)
page.save(flush: true, failOnError: true)
但是,以下例外情況會失敗:
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.ramboll.egs.ohs.domain.Domain#1]
的Page
Domain
和之間的關係可以簡單地通過具有Domain
屬性Page
實現。否hasMany
og belongsTo
- 由於性能問題,我在之前的帖子中對此感到氣餒。
我想我已經嘗試過的save
,merge
,withTransachtion
和PersistenceContextInterceptor
所有可以想象的組合...
這是如何工作的?請舉例。
在此先感謝!
它是如何失敗?請顯示一些不只是僞代碼的代碼。 –
你確定第一行保存了嗎?檢查它是否返回null,表示違反約束。還要考慮'save(flush:true,failOnError:true)',如果無效,拋出異常 –