【发布时间】:2015-06-30 16:23:28
【问题描述】:
我正在尝试将带有 @Id 字符串的实体类更改为带有长 @Id 的类,这里是类:
@Entity
public class MyClass extends EntityBaseString{
private static final long serialVersionUID = 1L;
private Ref<MyClass> parent;
private List<Ref<MyClass>> list = new ArrayList<Ref<MyClass>>();
public MyClass(){}
//getters and setters omited
}
我想要将超类从EntityBaseString 更改为EntityBaseLong,但我想知道更好的方法是什么?
我试图将它复制到另一个名为 MyClassV2 的实体,该实体扩展了 EntityBaseLong,并且我已将 MyClass 实体复制到 MyClassV2 实体。但问题是MyClassentities 被很多其他实体引用,所以如果我使用MyClassV2,模型上会有很多变化。
我正在使用 Objectify v4。
【问题讨论】:
-
我想知道你为什么要这样做。
-
我需要这样做,因为有问题的类首先被认为是唯一的(我使用带有实体名称的字符串 ID 来获得唯一性行为)。但是现在,流程移动了,并且该实体不必是唯一的,因此我正在尝试将其迁移到 Long Id 实体。我正在考虑根据实体内容制作一个唯一的字符串哈希。我更喜欢迁移到 Long IDs 实体,但我有很多代码要更改才能以这种方式迁移。
标签: java google-app-engine objectify