1

我在开发 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());
    }

这行得通,但它真的是正确的方法吗?

4

0 回答 0