Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 将应用程序从GAE M/S数据存储迁移到HRD的影响_Google App Engine - Fatal编程技术网

Google app engine 将应用程序从GAE M/S数据存储迁移到HRD的影响

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

将应用程序从M/S数据存储迁移到HRD时,需要避免某些陷阱。我有一个问题是关于这样一个特定的领域,它说“同类的实体ID并不总是唯一的”

为了进一步解释,这里有一个例子

  • 假设我有3个实体客户、联系人、地址如下
  • 联系人实体使用客户密钥引用客户作为 com.google.appengine.api.datastore.Key
  • 地址实体使用客户密钥引用客户,只要
  • 这三个类别是:

    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(因此键)获取实体始终具有很强的一致性,最终的一致性只会在对多个实体组进行查询时显示其外观。