我试图创建Room数据库并向其插入值,但我得到了这个错误:
公共抽象类WeatherDatabase扩展了AndroidX.Room.RoomDatabase{^error:无法知道如何将此字段保存到数据库中。可以考虑为它添加类型转换器。AndroidX.Room.RoomDatabaseError中的-mDatabase:无法确定如何将此字段保存到数据库中。可以考虑为它添加类型转换器。AndroidX.Room.RoomDatabaseError中的-mCallbacks:无法确定如何将此字段保存到数据库中。可以考虑为它添加类型转换器。AndroidX.Room.RoomDatabaseError中的-mQueryExecutor:无法确定如何将此字段保存到数据库中。可以考虑为它添加类型转换器。AndroidX.Room.RoomDatabaseError中的-mTransactionExecutor:无法确定如何将此字段保存到数据库中。可以考虑为它添加类型转换器。-AndroidX.Room.RoomDatabaseError中的mOpenHelper:无法知道如何将此字段保存到数据库中。可以考虑为它添加类型转换器。-AndroidX.Room.RoomDatabaseError中的mInvalidationTracker:无法确定如何将此字段保存到数据库中。可以考虑为它添加类型转换器。-AndroidX.room.RoomDatabaseError中的mCloseLock:无法知道如何将此字段保存到数据库中。可以考虑为它添加类型转换器。AndroidX.Room.RoomDatabaseError中的-mSuspendingTransactionId:无法确定如何将此字段保存到数据库中。可以考虑为它添加类型转换器。AndroidX.Room.RoomDatabaseError中的-mBackingFieldMap:找不到字段的getter。-AndroidX.Room.RoomDatabaseError中的mAllowMainThreadQueries:找不到字段的getter。-AndroidX.Room.RoomDatabaseError中的mCloseLock:找不到字段的getter。-AndroidX.Room.RoomDatabaseError中的mSuspendingTransactionId:找不到字段的getter。AndroidX.Room.RoomDatabaseError中的-mBackingFieldMap:找不到字段的setter。-AndroidX.Room.RoomDatabaseError中的mQueryExecutor:找不到字段的setter。-AndroidX.Room.RoomDatabaseError中的mTransactionExecutor:找不到字段的setter。-AndroidX.Room.RoomDatabaseError中的mOpenHelper:找不到字段的setter。-AndroidX.Room.RoomDatabaseError中的mInvalidationTracker:找不到字段的setter。-AndroidX.Room.RoomDatabaseError中的mAllowMainThreadQueries:找不到字段的setter。-AndroidX.Room.RoomDatabaseError中的mCloseLock:找不到字段的setter。-AndroidX.Room.RoomDatabaseError中的mSuspendingTransactionId:找不到字段的setter。-mBackingFieldMap在AndroidX.room.RoomDatabasec中:\users\ceran\desktop\projid\simpleweatherapp\app\build\tmp\kapt3\stubs\debug\com\example\simpleweatherapp\database:11:error:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:databaseweather)public抽象^C:\users\ceran\desktop\projekty\android\simpleweatherapp\app\build\tmp\kapt3\stubs\debug\com\example\simpleweatherapp\database\weatherdao.java:14:error:com.example.simpleweatherapp.database.weatherdatabase是com.example.simpleweatherapp.database.weatherdatabase的一部分,但是这个实体不在数据库中。也许您忘记将com.example.simpleweatherapp.database.databaseWeather添加到@database的实体部分?
它很长,但它重复了同样的句子“不知道如何将该字段保存到数据库中。你可以考虑为它添加一个类型转换器。”我该怎么办?下面是我的代码:
@Entity(tableName = "current_weather")
data class DatabaseWeather constructor(
val name: String,
val lon: Double,
val lat: Double,
val description: String,
val icon: String,
val temp: Double,
val tempFeelsLike: Double,
val humidity: Int,
val pressure: Int
){
@PrimaryKey(autoGenerate = false)
var id: Int = WEATHER_ID
}
fun DatabaseWeather.asDomainModel(): CurrentWeather{
return CurrentWeather(
name = this.name,
lon = this.lon,
lat = this.lat,
description = this.description,
icon = this.icon,
temp = this.temp,
tempFeelsLike = this.tempFeelsLike,
humidity = this.humidity,
pressure = this.pressure
)
}
@Dao
interface WeatherDao{
@Query("select * from current_weather where id = $WEATHER_ID")
fun getWeather(): LiveData<DatabaseWeather>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(weather: DatabaseWeather)
}
@Database(entities = [WeatherDatabase::class], version = 1)
abstract class WeatherDatabase: RoomDatabase(){
abstract val weatherDao: WeatherDao
}
private lateinit var INSTANCE: WeatherDatabase
fun getDatabase(context: Context): WeatherDatabase{
synchronized(WeatherDatabase::class.java){
if (!::INSTANCE.isInitialized){
INSTANCE = Room.databaseBuilder(context.applicationContext,
WeatherDatabase::class.java, "weather_db").build()
}
}
return INSTANCE
}
您将WeatherDatabase
作为WeatherDatabase
的实体,而是提供DatabaseWeather
@Database(entities = [DatabaseWeather::class], version = 1)
abstract class WeatherDatabase: RoomDatabase(){
abstract val weatherDao: WeatherDao
}
我需要你的帮助。我试图在没有反序列化的情况下找到解决方案,但我什么也没找到。如果你能帮我就好了...所以我有了下面的JSON文件 谢谢你的时间和帮助。 我有以下错误:
请大家帮忙支持我,谢谢!
我试图找到一种方法来保存复选框的状态到房间数据库,但当我点击复选框并重新打开应用程序时,它的状态并没有改变。我不知道我哪里出错了。我已经搜索了前面的问题,但找不到解决办法。下面是我的代码和感谢。 TodoAdapter 主体活动
已经创建了一个@Embedded类播放器。我想在其中添加ArrayList字段,该字段使用@TypeConverters,它在保存时将列表转换为Gson,在加载时将其转换为Gson。请告诉我如何在void migrate() 方法中请求将列表添加到Player类的现有实例中。 类保存: TypeConverter:
BidsItem类 如果有人告诉我我需要做什么,或者至少向什么方向前进,我将非常感激
错误:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:任务) 显示了这个错误,我怎么可能修复它? 我正在学习这个教程