Google app engine 将应用程序从GAE M/S数据存储迁移到HRD的影响
将应用程序从M/S数据存储迁移到HRD时,需要避免某些陷阱。我有一个问题是关于这样一个特定的领域,它说“同类的实体ID并不总是唯一的” 为了进一步解释,这里有一个例子Google app engine 将应用程序从GAE M/S数据存储迁移到HRD的影响,google-app-engine,Google App Engine,将应用程序从M/S数据存储迁移到HRD时,需要避免某些陷阱。我有一个问题是关于这样一个特定的领域,它说“同类的实体ID并不总是唯一的” 为了进一步解释,这里有一个例子 假设我有3个实体客户、联系人、地址如下 联系人实体使用客户密钥引用客户作为 com.google.appengine.api.datastore.Key 地址实体使用客户密钥引用客户,只要 这三个类别是: public class Customer { @PrimaryKey @Persistent(valueStrate
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;
}
所有实体都是根实体
现在,当我们迁移联系人和地址实体中的customerId时会发生什么?他们还会工作吗?还是我们需要在迁移之前对他们做些特别的事情
谢谢 您指的是如何构建键。实体的密钥由以下部分组成:
- 您的应用程序id
- 当前名称空间
- 父级的层次结构
感谢您的详细解释。因为我们所有的实体都是根实体,所以我们可以继续使用pm.newQuery(,“where customerId=”)和HRD,而不用担心重复的键。它的另一面是最终的一致性。数据在整个HRD中显示是否需要2-5秒?直接按id(因此键)获取实体始终具有很强的一致性,最终的一致性只会在对多个实体组进行查询时显示其外观。