使用greendao重新链接数据库的好方法是什么?

时间:2013-07-16 19:42:11

标签: android database greendao

我在开发Android应用程序和使用数据库方面有点愚蠢,所以请记住这一点。

设置:我正在构建一个从服务器接收jsondata的应用程序,这是用gson解析的,由greendao生成的类的对象,然后插入到数据库中。

我的问题:插入的对象没有任何本地链接层次结构。此时,父ID仍然存储在对象中,因此可以通过手动遍历所有对象来设置。我的方法看起来像这样:

//Relevant part of the generator file
user = schema.addEntity("User");
user.addIdProperty().autoincrement();
user.addLongProperty("serverId");

area = schema.addEntity("Area");
area.addIdProperty().autoincrement();
userLinkId = area.addLongProperty("_parent").getProperty();
area.addLongProperty("serverId");
area.addLongProperty("serverParentId");

area.addToOne(user, userLinkId);
user.addToMany(area, userLinkId);

//Relevant part of the datainsertion    
SyncObject theobject = gson.fromJson(jo.getAsJsonObject("new"),SyncObject.class);
app.getSession().getAreaDao().insertInTx(theobject.areas);

QueryBuilder<User> qbu = app.getSession().getUserDao().queryBuilder();
List<Area> areas = qba.list();
    for (Area a : areas) {
        Long userServerId = a.getServerParentId();          
        List<User> users = qbu.where(UserDao.Properties.ServerId.eq(userServerId)).list();
        a.set_parent(user.getId());
    }

这很有效,但它真的是正确的方法吗?

0 个答案:

没有答案