【发布时间】:2019-01-31 19:47:25
【问题描述】:
我使用 Room 作为我项目的本地数据库。我创建了一个MovieDao 接口:
@Dao
public interface MovieDao {
@Query("SELECT * FROM movies ORDER BY title ASC")
LiveData<List<Movies.Movie>> getMovies();
@Query("SELECT * FROM movies WHERE id = :id")
LiveData<Movies.Movie> getMovie(int id);
}
每次我尝试调用 getMovies() 方法时,它都会正确返回 Movie 对象的列表,但如果我调用 getMovie(int id) 并传递数据库中肯定存在的 id,我总是会得到 NPE。
我可以创建一个查询而不是返回单个 Movie 对象吗?
谢谢!
编辑:
LiveData<Movies.Movie> liveData = movieRepository.retrieveFavoriteMovieTask(550);
liveData.observe(this, m -> {
Log.d(TAG, m.title);
});
错误:
java.lang.NullPointerException:尝试从空对象引用上的字段“java.lang.String com.example.myapp.Movies$Movie.title”读取
【问题讨论】:
-
该查询看起来不错。你能添加堆栈跟踪吗?
-
@MartinZeitler 当然,马上。
-
@MartinZeitler 请立即查看。
-
@MartinZeitler 有什么想法吗?
-
m未在范围内定义;那可能应该是movie.title。
标签: android android-sqlite android-room android-livedata