android - 房间 : error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: abc)

标签 android database android-room

我想使用同一种对象来查询多个表。我定义了一个基类,如下所示:

@Entity
public class BaseWordId {
    @PrimaryKey
    @NonNull
    public Integer word_id;
}

然后我对基类进行了子类化,并为它们中的每一个定义了 DAO。
@Entity(tableName = "abc")
public class ABC extends BaseWordId {
}

@Entity(tableName = "xyz")
public class XYZ extends BaseWordId {
}

@Dao
public interface ABCDao {
    @Query("SELECT * FROM abc")
    List<ABC> get_all();
}

@Dao
public interface XYZDao {
    @Query("SELECT * FROM xyz")
    List<XYZ> get_all();
}

但是我一直收到一个编译错误,即没有这样的表:abc 和没有这样的表:xyz。任何想法?

最佳答案

你应该提到两个 entities在你的 roomDatabase 类中。

@Database(entities = {BaseWordId.class, ABC.class}, version = VERSION_CODE, exportSchema = false) 
public abstract class YourDatabase extends RoomDatabase {
    //your Daos
}

关于android - 房间 : error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: abc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553971/

相关文章:

android - 为什么 adb 在设备字符串后返回离线?

Android Room - 如何在每次应用程序运行时重置自动生成的表主键

kotlin - 房间用构造函数生成ID

php - 将 Volley 与 JsonObjectRequest 一起使用时无法从 PHP 获取参数

android - 显示自定义排行榜 UI

mysql - 使用外键在数据库中重新输入旧数据

mysql - 逗号分隔的字符串列表转换为mysql中的日期

database - 用 1000 万行填充数据库表的最快方法

仅选择一列时Android房间类型转换器不转换

java - Android:如何永久且完全不显示 EditText 的默认软键盘?