Объект Java POJO
public class Section {
@ColumnInfo(name="section_id")
public int mSectionId;
@ColumnInfo(name="section_name")
public String mSectionName;
public int getSectionId() {
return mSectionId;
}
public void setSectionId(int mSectionId) {
this.mSectionId = mSectionId;
}
public String getSectionName() {
return mSectionName;
}
public void setSectionName(String mSectionName) {
this.mSectionName = mSectionName;
}
}
Мой метод запроса
@Query("SELECT * FROM section")
LiveData<List<Section>> getAllSections();
Доступ к DB
final LiveData<List<Section>> sections = mDb.sectionDAO().getAllSections();
В следующей строке я проверяю sections.getValue()
, который всегда дает мне null, хотя у меня есть данные в DataBase, а позже я получаю значение в методе onChanged()
.
sections.observe(this, new Observer<List<Section>>() {
@Override
public void onChanged(@Nullable List<Section> sections){
}
});
Но когда я опускаю LiveData из запроса, я получаю данные, как ожидалось. Метод запроса:
@Query("SELECT * FROM section")
List<Section> getAllSections();
Доступ к БД:
final List<Section> sections = mDb.sectionDAO().getAllSections();