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

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

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

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

然后我对基础 class 进行了子class 并且还为每个基础定义了 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();
}

但我一直收到编译错误,没有这样的 table: abc 也没有这样的 table: xyz。有什么想法吗?

您应该在您的房间数据库 class.

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