2011-07-22 4 views
0

私はJDOとGoogleのアプリケーションエンジンを使用しています。私は、エリアオブジェクトのarrayListを持つUserクラスを持っています。すべてのエリアオブジェクトには、座標を示すLocationオブジェクトのarrayListがあります。今私は1つのエリアのオブジェクトを他のユーザーに移動したい。私は移動したい領域オブジェクトのオブジェクトを複製して他のユーザのareaListに入れています。そして、remove(index)を使って最初のユーザーのリストからその領域を削除します。しかし、そのは、このエラーを与える:JDOでオブジェクトの親を変更する方法は?

アラシュとMHがユーザーであると私はMHからアラシュにエリアを移動しています
Detected attempt to establish User("arash") as the parent of User("mh")/RunData(153) but the entity identified by User("mh")/RunData(153) is already a child of User("mh"). A parent cannot be established or changed once an object has been persisted. 

ありがとうございます。

どうすればこの問題を解決できますか?前もって感謝します。

答えて

1

これらのクラスをどのようにコード化したかについての情報を提供していないので、あなたに銀色の弾丸として与えることのできるコードはありません。しかし、それは可能性があります!

問題は、App Engineのデータストアは、キーまたはIDのオブジェクトの親への参照を保持しているということです(これまでの呼び出し内容)。どんな良いフレームワークでも、あなたが何かしなかったことを確認します。 :-)したがって、メッセージ。

「領域オブジェクトのオブジェクト」をクローンすると、IDまたはKeyもクローンされました。右?それが問題だ。あなたはそれに新しい鍵かIDを与えなければなりません。これは、私はあなたにいくつかのコードを与えることができるポイントですが、少しの情報を与えたので、KeyFactory JavaDocあなた自身に行く必要があります。

Good Luck!

関連する問題