2016-04-03 15 views
0

isAttached()とアタッチ。 は、しかし、それは私に私は理解してGrailsのfalseを返すをisAttached</p> <pre><code>if(!musician.style.isAttached()){ musician.style.attach(); } </code></pre><p>コードレジスタを使用しようとすると()

"object with the same identifier value was already associated with the session" 

ヘルプを言ってエラーになります()添付しようとしたとき。識別子がすでにセッションに関連付けられている場合、セッションにisAttached()がTRUEを返さないのはなぜですか?

答えて

1

実行時に理論が期待通りに実現しなかった場合、この問題も発生しました。私の解決策は、musician.style = Style.get(styleId)のようなものでした。styleIdparamsから、どこかに覚えています。もちろんこれは正しく動作しますが、データベース/キャッシュ呼び出しであり、ループ内にあると悪いです。

+0

これは私が一緒に行った理想的でないソリューションです。 – user2782001

2

更新: - 私はstyleは、関連するドメインオブジェクトであることを見逃していた私は、mohsenmadiの答えは、最も可能性の高い関連のあなたの問題にあると思います。 isAttached()が戻っている理由

それはしかし、私の疑惑は、あなたのセッションと1に取り付けられている。そのうちの一つ同じ識別子と重複したオブジェクトを持っているかもしれないということです、あなたのコードの多くを見ることなく、特定することは難しいことではないですよ(とがあります偽)。私は、手動セッション管理(バッチ処理の実装など)をたくさん行うときにこれが起こるのを見ました。

+0

チップをありがとう。私はまだアプリケーションの複製を見つけることができませんでしたので、私はmohsenmadiのソリューションを今のところパッチとして使用していました。 – user2782001

+0

Si重複(1つは添付されていない)を見て削除する方法がありますか? – user2782001

関連する問題