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();
访问数据库
final LiveData<List<Section>> sections = mDb.sectionDAO().getAllSections();
在下一行中,我正在检查 sections.getValue()
它总是给我空值,尽管我在数据库中有数据,后来我在 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();
原文由 S Haque 发布,翻译遵循 CC BY-SA 4.0 许可协议
我通过这种方法解决了这个问题