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