我试图使用新的房间图书馆,但我收到此错误
错误:查询存在问题:[SQLITE_ERROR] SQL错误或 缺少数据库(没有这样的表:站)
错误:不确定如何将Cursor转换为此方法的返回类型
警告:未向注释提供架构导出目录 处理器,所以我们无法导出架构。你可以提供
room.schemaLocation
注释处理器参数或集 exportSchema为false。错误:org.gradle.api.internal.tasks.compile.CompilationFailedException: 编译失败;有关详细信息,请参阅编译器错误输出。
RoomDatabase.kt
@Database(entities = TrolleyType::class), version = 2)
abstract class AppDatabase : RoomDatabase() {
abstract fun stationDao(): StationDao
}
MyDao.kt
@Dao
interface MyDao {
@get:Query("SELECT * FROM Station")
val stations: List<Station>
@get:Query("SELECT * FROM TrolleyType")
val trolleyTypes: List<TrolleyType>
}
的entites
@Entity
data class Station(
@PrimaryKey @ColumnInfo(name = "_id") var id: Int = 0,
@ColumnInfo(name = "StationName") var stationName: String? = "",
@ColumnInfo(name = "StationArabic") var stationArabic: String? = ""
)
@Entity
data class TrolleyType(
@PrimaryKey @ColumnInfo(name = "_id") var id: Int = 0,
@ColumnInfo(name = "Type") var stationName: String? = "",
@ColumnInfo(name = "TypeArabic") var stationArabic: String? = ""
)
答案 0 :(得分:18)
事实证明,我忘了将Station实体添加到RoomDatabase
添加后,每件事都按预期工作
@Database(entities = TrolleyType::class, Station::class), version = 2)
abstract class AppDatabase : RoomDatabase() {
abstract fun stationDao(): StationDao
}