0

こんにちは、GreenDao の新規ユーザーです。とても気に入っていますが、django REST API と Retrfit を GreenDao エンティティで使用してメッセージ プラットフォームをセットアップしようとしています。サーバーから次の JSON メッセージが送られてきます。

    {
    id: 1
    created_at: "2015-10-06T02:45:48Z"
    subject: "First message"
    message: "Here is our first message across the messaging system! I feel just like Samuel Morse."
    read: true
    sender: {
           url: "https://app.herokuapp.com/api/users/461"
           username: "travis"
           email: ""
           is_staff: false
    }
    receiver: 81
    }

問題は、緑色のdao「送信者」のメッセージオブジェクト内に、文字列ではなくユーザーオブジェクトとして、または長いメッセージオブジェクト内のオブジェクトを配置する方法です。

   Schema schema = new Schema(DB_VERSION, ANDROID_APP_ID);

    Entity privateMessage = schema.addEntity("PrivateMessage");
    PropertyType user = schema.addEntity("User");

    Property sender = privateMessage.addProperty(user., propertyName)

    privateMessage.addStringProperty("id").primaryKey().unique();
    privateMessage.addBooleanProperty("read");
    privateMessage.addStringProperty("message");

    user.addStringProperty("urlId").primaryKey().unique();
    user.addStringProperty("url").unique();
    user.addStringProperty("first_name");
    user.addStringProperty("last_name");
    user.addStringProperty("username").unique();
    user.addStringProperty("email").unique();
    user.addStringProperty("address");
    user.addStringProperty("phone_number");
    user.addStringProperty("password");
    user.addStringProperty("group");
    user.addBooleanProperty("sex");
    user.addBooleanProperty("is_stuff");
    user.addBooleanProperty("is_active");
    user.addStringProperty("token");
    user.addStringProperty("profile_picture");
    user.addStringProperty("description");
    user.addDateProperty("dob");


    Property messagesThreatsId = privateMessage.addStringProperty("receiver").getProperty();
    ToMany userToMessages = user.addToMany(privateMessage, messagesThreatsId);

    Property conversations = privateMessage.addStringProperty("subject").getProperty();


    Property created_at = privateMessage.addDateProperty("created_at").getProperty();
    userToMessages.setName("LastMessages");
    userToMessages.orderDesc(created_at);
4

1 に答える 1

1

関係をどのように機能させたいかに応じて、ユーザーからメッセージへの 1 対多の関係、またはメッセージからユーザーへの 1 対 1 の関係を使用できます。

最初のケースでは、このユーザーが送信したすべてのメッセージをユーザーごとに取得できます。2 番目の方法では、各メッセージについて、それを送信したユーザーを取得できます。あなたはいつも両方を行うことができました

JSON がこの形式の場合、最初に url フィールドを使用してユーザー ID を検索し、それをリレーションに配置する必要があることに注意してください。

ここには、関係に関するすべての情報があります。

于 2015-11-21T11:06:01.440 に答える