将应用程序从M / S数据存储区迁移到HRD时,需要避免一些陷阱。我对一个这样的特定区域提出了一个问题,即“同类的实体ID并不总是唯一的”。
在此进一步解释这是一个例子。
这3个课程是:
public class Customer {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private String name;
}
public class Contact {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private String name;
@Persistent
private Key customerId;
}
public class Address {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private String address;
@Persistent
private Long customerId;
}
所有实体都是根实体。
现在,当我们在Contact和Address实体中迁移 customerId 时会发生什么?他们还能继续工作,还是在移民之前我们需要做些什么特别的事情?
谢谢!
答案 0 :(得分:1)
您所指的是如何构建密钥。实体的密钥将由以下内容组成:
<-- this allows ids to be non-unique within a kind
key_name
或id
因此,要使密钥具有唯一性,这些部分中的任何一个都可能会发生变化。在一种类型中,在您应用内的单个命名空间内,唯一的时间ID可能不唯一,就是您为该实体设置了parent
。
这意味着您定义的所有根实体将具有唯一的ID /名称。
如果您需要保证指定的ID在某种类型中是唯一的,即使在具有祖先层次结构的实体中也是如此,您可以;