0

我正在使用不使用实体组的JDO 2.3使用旧版GAE系统,但我现在希望使用实体组来利用事务。在两个实体类型之间添加了一对多关系后,这对于创建的新实体可以正确工作,但是在使用没有父子关系(无法删除子实体)的现有遗留实体时会导致问题。将现有实体迁移为使用实体组

如何迁移现有的遗留实体以使用新的模式?我曾尝试更新的子类的父却收到一个org.datanucleus.store.appengine.DatastoreRelationFieldManager$ChildWithoutParentException ... A parent cannot be established or changed once an object has been persisted.

回答

1

首先,你仍然可以使用交易的实体组之外 - 这就是所谓的跨集团的交易(XG交易)。尽管您在交易中仅限于25实体组

注:在你的情况下,每一个实体的实体组。

实体组的实体的是在创建时定义一个不可变属性。这意味着你需要删除然后用正确的父集写一个新的实体,当然在事务中。

+0

啊,是的,我知道XG交易。我应该在我原来的问题中澄清,我需要涉及超过25个实体的交易:D。尽管如此,答案的第二部分就是我所需要的。虽然我希望有一种方法可以不创建新的实体类型,因为原始实体的编码pk被使用并存储在业务逻辑和其他实体中。 – kanghj91