我正在使用遗留GAE系统,使用JDO 2.3,它不使用实体组,但我现在希望使用实体组来利用事务。在两个实体类型上添加了一对多关系后,这对于创建的新实体正常工作,但在使用没有父子关系的现有遗留实体(无法删除子实体)时会导致问题。
如何迁移现有的旧实体以使用新架构?我尝试更新子类的父级,但收到了org.datanucleus.store.appengine.DatastoreRelationFieldManager$ChildWithoutParentException
... A parent cannot be established or changed once an object has been persisted.
答案 0 :(得分:1)
首先,您仍然可以使用实体组之外的交易 - 它被称为跨群交易(XG交易)。但是,您在交易中仅限于 25个实体组。
注意:在您的情况下,每个实体都是一个实体组。
实体的实体组是在创建时定义的不可变属性。这意味着你需要删除然后在事务中用正确的父集写一个新的实体。