【发布时间】:2016-03-18 08:41:04
【问题描述】:
如果有一个用户实体之前有一个字符串 id。我想迁移到一个看起来很简单的 Long id:
public class UserEntity {
/*@Id*/
@Index String oldId;
@Id Long newId;
/* other indexed fields I use for loading the entity */
private List<Ref<ReferencedEntity>> collections;
}
public class ReferencedEntity {
private List<Ref<User>> owners;
}
由于我通过不同的字段加载用户,我可以检查用户是否有一个 null newId,如果是 null,则将旧的保存回来,以便自动生成器在 newId 字段中设置一个新的 Id。
现在的问题是我与其他实体的 n 到 m 关系。我应该如何迁移那些?我在两边都有一个Ref,所以我想我可以在用户实体端加载引用并用新的 ID 替换另一端。
一般的问题是如果一方需要一个新的id,如何迁移n到m的关系?
【问题讨论】:
标签: java google-app-engine objectify