我有一个带有两种简单实体的appengine应用程序 - ParentEntity
和ChildEntity
。每个ParentEntity
都拥有List
个ChildEntity
。
@PersistenceCapable
public class ParentEntity
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String name;
@Persistent(defaultFetchGroup=true)
private List<ChildEntity> children;
...
同样定义了ChildEntity。
现在,我想使用http://bulkloadersample.appspot.com/中描述的技术从数据存储区下载我的所有数据。在他们的示例中,他们设法将数据导出到xml文件,其中拥有的实体嵌套在父实体中。但是,当我尝试使用以下配置(非常类似于他们 - 请参阅http://bulkloadersample.appspot.com/showfile/bulkloader_visitactivity.yaml并查看activities
属性)时,我遇到了错误。
- kind: ParentEntity
connector: simplexml
connector_options:
xpath_to_nodes: /Parents/ParentEntity
style: element_centric
property_map:
- property: __key__
external_name: key
export_transform: transform.key_id_or_name_as_string
- property: children
external_name: Children
import_transform:
transform.list_from_child_node('Children/ChildEntity')
export_transform:
transform.child_node_from_list('ChildEntity')
- kind: ChildEntity
connector: simplexml
connector_options:
xpath_to_nodes: /Children/ChildEntity
style: element_centric
property_map:
- property: __key__
external_name: key
export_transform: transform.key_id_or_name_as_string
我收到以下错误:
google.appengine.ext.bulkload.bulkloader_errors.ErrorOnTransform: Error on trans
form. Property: children External Name: Children. Code: transform.ch
ild_node_from_list('ChildEntity') Details: 'NoneType' object is not iterable
大更新:
实际查看和下载并测试
您可以在http://rileylark.appspot.com/view
看到输出 WANT下载eclipse项目,了解它的工作原理。
我想要的500分是一个有效的config.yaml文件,可以使用appcfg.py download_data
将Parent和ChildEntities的数据导出为嵌套XML答案 0 :(得分:0)
尝试使用:
transform.list_from_child_node('GradingPeriods/GradingPeriod', suppress_blank=True)