私はこのエラーを1週間は苦労しています。私は真剣にこれを忘れています!私はmultible実装と回避策とハックを試しましたが、私はちょうど別の例外にstubling続けています。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
のすべてthinkable組み合わせを試してみましたと思う...
は、これはどのように動作するようになっていますか?例をお願いします。
ありがとうございます!
それがどのように失敗するのですか?擬似コードだけではないコードを表示してください。 –
最初の行が保存されていますか?制約違反を示すnullが返されるかどうかを確認します。また、無効な場合に例外をスローする 'save(flush:true、failOnError:true)'も考慮してください。 –