1

我正在将 greendao 用于我的应用程序。我使用了一个生成器来创建所有的表,我现在正在运行测试。插入适用于用户表,但不适用于组表。两个实体模型之间几乎没有什么不同,所以我不知道为什么会出现插入错误。

这是我所有的模型

private static void addMessage() {
    Entity message = schema.addEntity("Message");
    message.addIdProperty().autoincrement();
    message.addStringProperty("mtext").notNull();
    message.addDateProperty("date").getProperty();
    message.addLongProperty("userId").notNull();
    message.addLongProperty("groupId").notNull();

}

private static void addUser(){
    Entity user = schema.addEntity("User");
    user.addIdProperty().autoincrement();
    user.addStringProperty("username").notNull().unique();
    user.addStringProperty("email").notNull().unique();
    // Not necessary if group does not exist
    user.addStringProperty("token").unique(); // Doesn't have to be there unique
}

private static void addGroup(){
    Entity group = schema.addEntity("Group");
    group.addIdProperty().autoincrement();
    group.addStringProperty("name").notNull();
    group.addStringProperty("description").notNull();
}

private static void addUserToGroup(){
    Entity ugSchema = schema.addEntity("UserGroup");
    ugSchema.addIdProperty().autoincrement();
    ugSchema.addLongProperty("userId").notNull();
    ugSchema.addLongProperty("groupId").notNull();
}

这是我的测试方法。请记住,我使用静态来控制 DAO 会话。如果您认为这可能有助于某些事情,请告诉我。

public void testDB(){

    User inUser = new User();
    inUser.setEmail("KevinKivo@gmail.com");
    inUser.setUsername("KevinKivo");
    inUser.setToken("TheRandomTokenGoesHere");
    Database.getuser().insert(inUser);
    ArrayList<User> user = (ArrayList<User>)
            Database.getuser()
                    .queryBuilder()
                    .list();
    // Can create message and
    for(User us: user){
        Log.i(TAG, "Email: " + us.getEmail());
        Log.i(TAG, "Username: " + us.getUsername());
        Log.i(TAG, "Token: " + us.getToken());
    }

    // Create a group here
    Group sampleGroup = new Group();
    sampleGroup.setName("SampleName");
    sampleGroup.setDescription("SampleDescription");

    Log.i(TAG, "" + Database.getGroup());
    Log.i(TAG, "" + Database.getuser());
    Log.i(TAG, "" + Database.getGroup().insertOrReplace(sampleGroup));


    // Add user and group id relation here
}

插入用户可以完美地工作,而插入组则不能。有人可以解释为什么吗?这个问题现在困扰着我的生活。我正在处理应用程序的其他部分,但这非常重要。

4

0 回答 0