2017-02-13 3 views
0

Я использую greenDao в своем приложении для сохранения сложного объекта.Проблема с сохранением GreenDao

Например

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

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

class c{ 
id; 
name; 
} 

Я получил таблицы со всеми полями класса (для всех классов).

Проблема: Я вижу записи для таблицы A (для класса A), таблицы B и C пусты (без записей).

Я сохраняющиеся объект класса А, как:

A toSave = //class generated by GSON 

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

Можете ли вы помочь мне решить эту проблему?

Также я не могу найти в документации, если разрешено запрашивать dao-объект и получать объект класса A со всей информацией/полями автоматически?

спасибо!

ответ

-1

Я нашел решение:

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 
  • Вставка для объектов, которые не имеют идентификатора, и
  • сделает обновление для объектов, имеющих набор идентификаторов.

GreenDao Git Issue

Другими словами, вы должны сохраняться все данные по отдельности.