GreenDao 持久性问题

GreenDao persistance issue

我在我的应用程序中使用 greenDao 来持久化复杂对象。

例如

class A{
id;
name;
List<B> list;
}

class B{
id;
name;
List<C> list;
}

class c{
id;
name;
}

我得到了包含所有 class 字段的 tables(对于所有 classes)。

问题: 我可以看到 table A(对于 class A)的记录,tables B 和 C 是空的(没有记录)。

我是class的持久对象一个赞:

A toSave = //class generated by GSON

aDao = daoService.getADao();
aDao.insert(toSave);

你能帮我解决这个问题吗?

我在文档中也找不到是否允许查询 dao 对象并自动检索 class A 的所有 information/fields 对象?

谢谢!

我找到了解决方案:

GreenDao 无法保留级联数据 - 如果您说 insertOrReplace(tvShow) 它不会保留剧集列表和时刻列表。为了执行此操作,您必须单独保留所有数据。

例如:

TvShowDao.save(tvShows) OR TvShowDao.insertOrUpdate(tvShows);

EpisodesDao.save(episodes) OR EpisodesDao.save(episodes)

MomentDao.save(moments); OR MomentDao.save(moments);

重要:

Note that save...() will do
  • 为没有 ID 的实体插入
  • 将为设置了 ID 的实体进行更新。

GreenDao Git Issue

换句话说,你必须单独持久化所有数据。