1

这是我的代码:

 Schema schema = new Schema(1, "com.core.greendao.db");

    /* Topic Model Table */
    Entity topic = schema.addEntity("Topic");
    topic.addLongProperty("topic_id").primaryKey();
    topic.addStringProperty("group_id").notNull();
    topic.addStringProperty("user_id");
    topic.addStringProperty("slug");
    topic.addStringProperty("message");
    topic.addStringProperty("reply_count");
    topic.addStringProperty("like_count");
    topic.addStringProperty("anon_status");
    topic.addStringProperty("link_data");
    topic.addStringProperty("created_at");
    topic.addStringProperty("locale");
    topic.addIntProperty("status");

    /* Reply Model Table */
    //TODO: Topic id add for relation
    Entity reply = schema.addEntity("Replies");
    reply.addLongProperty("reply_id").primaryKey();
    reply.addStringProperty("message");
    reply.addStringProperty("reply_count");
    reply.addStringProperty("like_count");
    reply.addStringProperty("anon_status");
    reply.addStringProperty("link_data");
    reply.addStringProperty("created_at");
    reply.addStringProperty("locale");
    reply.addIntProperty("status");

    /* User Model Table */
    //TODO: Topic id to add for relation
    Entity user = schema.addEntity("User");
    user.addIdProperty();
    user.addLongProperty("user_id");
    user.addStringProperty("url");
    user.addStringProperty("fullname");
    user.addStringProperty("tagline");
    user.addStringProperty("image");
    user.addStringProperty("category_title");

    /* Actions */
    //TODO: Topic id and Reply id for relation
    Entity actions = schema.addEntity("Actions");
    actions.addIdProperty();
    actions.addLongProperty("user_id");
    actions.addStringProperty("url");


    /*******************************************************************/

    Property topicIdForTopicUser = user.addLongProperty("topic_id").notNull().getProperty();
    user.addToOne(topic, topicIdForTopicUser);

    Property topicIdForTopicAction = actions.addLongProperty("topic_id").notNull().getProperty();
    actions.addToOne(topic, topicIdForTopicAction);

    Property topicIdForReply = reply.addLongProperty("topic_id").notNull().getProperty();
    reply.addToOne(topic, topicIdForReply);


    /*******************************************************************/

根据结构,topic_id是表中的主,是、和表中的外键TopicUserActionReplies

我从Topic表中得到了正确的值。但是当我尝试基于topic_id.

任何帮助表示赞赏。

4

1 回答 1

1

您需要使用.addToOne(table, property)方法来指定关系。您也不需要为对象指定 id,您可以使用.addIdProperty()例如

Schema schema = new Schema(1, "com.core.greendao.db");
Entity user = schema.addEntity("User");
user.addIdProperty();

Entity topic = schema.addEntity("Topic");
topic.addIdProperty();
Property userId = topic.addLongProperty("user_id").notNull().getProperty()
topic.addToOne(user, userId);

有关关系的更多示例,请参阅GreenDAO 文档

于 2016-02-18T18:03:10.713 回答