java
@Dao
public interface UserDAO {
...
@Query("SELECT * FROM User")
List<User> queryAll();
}
-
在 Android 开发中,使用 Room 时,启动项目时,上述代码出现如下错误信息
错误: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: User)
List<User> queryAll();
^
问题原因
- 使用 Room 时,
@Database注解需要明确声明要映射到数据库表的数据库实体类
处理策略
- 确保
@Database注解包含所有数据库实体类
java
// 原来是这样
@Database(entities = {Staff.class}, version = 1, exportSchema = false)
java
// 修改成这样
@Database(entities = {User.class, Staff.class}, version = 1, exportSchema = false)