2010-03-23 7 views
1

Est-ce que quelqu'un a essayé d'implémenter une application dans GAE ayant java et python?Appengine JDO Dataclasses au modèle python

J'ai une application existante et mon frontal est en Java. Maintenant, je veux utiliser le datastore existant pour être interfacé avec python. Mon problème est que je ne sais pas comment définir les relations et le modèle qui serait équivalent à celui de Java. J'ai essayé la relation un-à-plusieurs dans python mais quand stocké dans le magasin de données, les champs sont différents que le one-to-many de java.

Mes classes de données sont les suivantes. // one-to-many propriété

classe parent

public class Parent{ 

    @PrimaryKey 
    @Persistent 
    private String unitID; 
    //some other fields... 


    @Persistent 
    @Order(extensions = @Extension(vendorName="datanucleus", key="list-ordering", value="dateCreated desc")) 
    private List <Child> child; 

    //methods & constructors were omitted 


} 

enfant

public class Child{ 

    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Key uId; 

    @Persistent 
    private String name; 

    /* etc... */ 

} 

Répondre

0

A travers quelques tests, j'ai finalement compris comment faire cela. D'abord définir les modèles ou en Java, on l'appelle des classes.

class Parent(db.Model): 
    someData = db.StringProperty(multiline=True) .... 

class Child(db.Model): 
    someData = db.StringProperty(multiline=True) ... 

Maintenant, pour définir la relation d'une instance d'un enfant à son parent, positionner le parent comme l'ancêtre de l'enfant.

parentModel = Parent(key_name='key_of_parent') 
childModel1 = Child(parent=parentModel) #set the parentModel as parent of the childModel1 
childModel2 = Child(parent=parentModel) #set the parentModel as parent of the childModel2 

Maintenant vous avez une relation one-to-many.

+0

Vous pouvez maintenant utiliser 'ndb.TextProperty (required = True)' –

Questions connexes