Appengine JDO dataclasses для модели Python - PullRequest
1 голос
/ 23 марта 2010

Кто-нибудь пытался реализовать приложение в GAE, имеющее как Java, так и Python?

У меня есть существующее приложение, и мой интерфейс находится в Java. Теперь я хочу использовать существующее хранилище данных для взаимодействия с Python. Моя проблема в том, что я не знаю, как определить отношения и модель, которая была бы эквивалентна той, что в Java. Я пробовал отношение «один ко многим» в python, но при хранении в хранилище данных поля отличаются от «один ко многим» в Java.

Мои классы данных следующие. // один-ко-многим принадлежит

Родительский класс

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


}

Дети

public class Child{

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

    @Persistent
    private String name;

    /* etc... */

}

1 Ответ

0 голосов
/ 29 июня 2010

После некоторого тестирования я наконец понял, как это сделать. Во-первых, определить модели или в Java, это называется классы.

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

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

Теперь, чтобы установить отношение экземпляра потомка к его родителю, просто установите родителя как предка потомка.

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

Теперь у вас есть личные отношения один ко многим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...