2種類のエンティティ(ParentEntity
とChildEntity
)を持つappengineアプリがあります。各ParentEntity
には、が所有されています(ChildEntity
)。ネストしたエンティティを持つappengineのバルクダウンローダーをxmlに変換する
@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
で
私はあなたが実際に確認してダウンロードすることができます。このサンプルアプリケーションを作成しましたし、テスト
を出力I WANT at http://rileylark.appspot.com/vieweclipseプロジェクトをダウンロードして、その動作を確認してください。
私は私の500ポイントのために欲しいのはappcfg.py download_dataでネストされたXMLに親とChildEntitiesため
である理由リンクされた例で使用されているtransform.child_node_from_list( 'GradingPeriod') ではなく、transform.list_from_child_node( 'GradingPeriod')を使用していますか? – systempuntoout
私はそれがすべきことであることに気をつけてそれをやっています。私はどこからでも信頼できるドキュメントを見たことがなく、他のいくつかのサイトはchild_node_from_listを使用しています。リストから子ノードを作成したいようです。私もlist_from_child_nodeを試しましたが、他のエラーがたくさんあります。 –
「子」をフェッチする「リスト」は常に「なし」と思われます。 – hleinone