【问题标题】:How to change parent of an object in JDO?如何在 JDO 中更改对象的父级?
【发布时间】:2011-10-10 23:04:04
【问题描述】:

我正在使用 JDO 和谷歌应用引擎。我有一个用户类,它有一个区域对象的arrayList。每个 area 对象都有一个 Location 对象的arrayList,它告诉我们坐标。现在我想将一个区域对象从一个用户移动到另一个用户。我正在制作要移动的区域对象的克隆对象,并将其放入其他用户的 areaList 中。然后使用 remove(index) 从第一个用户的列表中删除该区域。但它给出了这个错误:

   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.

其中 arash 和 mh 是用户,我正在将区域从 mh 移动到 arash。

提前致谢。

我该如何解决这个问题。提前致谢。

【问题讨论】:

    标签: java google-app-engine persistence parent-child jdo


    【解决方案1】:

    由于您没有提供有关如何编写这些类的信息,因此我无法将代码作为灵丹妙药提供给您。但可能有!所以这里有一些话:-)

    问题在于 App 引擎数据存储区会在键或 ID(无论您如何称呼它)中保留对对象父级的引用。和任何好的框架一样,它会检查你没有做你做过的事情。 :-) 因此消息。

    当您克隆“区域对象的对象”时,您也克隆了它的 ID 或 Key。正确的?那就是问题所在。您必须给它一个新的密钥或 ID。这是我可以给你一些代码但你提供的信息很少的地方,所以你必须自己去KeyFactory JavaDoc

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2019-10-28
      • 2010-10-20
      • 2020-05-18
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 2013-07-01
      相关资源
      最近更新 更多