Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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
Java 使用appcfg.py更新数据存储实体将重命名主键_Java_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Java 使用appcfg.py更新数据存储实体将重命名主键

Java 使用appcfg.py更新数据存储实体将重命名主键,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,我正在使用appcfg.py更新数据存储中的实体。我上传了一个csv: Name,Type Jim,2 Bob,4 然后我查看数据存储并注意到这些实体的主键字段的格式为“id=#”。然后,我使用appcfg.py下载此数据存储类型,具体如下: Name,Type,id Jim,2,10001 Bob,4,10002 我修改了类型字段并再次上传。结果是一组重复的条目,其中现在主键的形式为“name=#”。查看my config.yaml,这是密钥的相关条目: property_map:

我正在使用appcfg.py更新数据存储中的实体。我上传了一个csv:

Name,Type
Jim,2
Bob,4
然后我查看数据存储并注意到这些实体的主键字段的格式为“id=#”。然后,我使用appcfg.py下载此数据存储类型,具体如下:

Name,Type,id
Jim,2,10001
Bob,4,10002
我修改了类型字段并再次上传。结果是一组重复的条目,其中现在主键的形式为“name=#”。查看my config.yaml,这是密钥的相关条目:

 property_map:
    - property: __key__
      external_name: id
      export_transform: transform.key_id_or_name_as_string
我只想更新现有的数据存储实体,如何做到这一点?

试试:

- property: __key__ 
  external_name: key 
  export_transform: transform.key_id_or_name_as_string 
  import_transform: transform.create_foreign_key('YourKind', key_is_id=True) 
试试:

- property: __key__ 
  external_name: key 
  export_transform: transform.key_id_or_name_as_string 
  import_transform: transform.create_foreign_key('YourKind', key_is_id=True) 

这就是解决方案。但是,应该注意的是,当您导入数据库中尚未存在的一组数据时,需要注释掉导入转换,以便自动创建密钥。这就是解决方案。但是,应该注意的是,当您导入数据库中尚未存在的一组数据时,需要对导入转换进行注释,以便自动创建密钥。