当前位置: 首页 > 知识库问答 >
问题:

无法确定如何将此字段保存到数据库中。您可以考虑为其添加一个类型转换器

白驰
2023-03-14
@Entity
data class Crime (@PrimaryKey val id: UUID = UUID.randomUUID(),
                  var title: String = "",
                  var date: Date = Date(),
                  var isSolved: Boolean = false)

文件CrimetypeConverters.kt

class CrimeTypeConverters {
    @TypeConverter
    fun fromDate(date: Date?): Long?{
        return date?.time
    }

    @TypeConverter
    fun toDate(millisSinceEpoch: Long?): Date? {
        return millisSinceEpoch?.let {
            Date(it)
        }
    }

    @TypeConverter
    fun toUUID(uuid: String?): UUID? {
        return UUID.fromString(uuid)
    }

    @TypeConverter
    fun fromUUID(uuid: UUID?): String? {
        return uuid?.toString()
    }
}

错误:错误:无法确定如何将此字段保存到数据库中。可以考虑为其添加一个类型转换器。private java.util.date日期;C:\users\asus\AndroidStudioProjects\CriminalIntentV2\app\build\tmp\kapt3\stubs\debug\com\bignerdranch\android\CriminalIntent\database\crimedatabase.java:8:警告:没有向注释处理器提供html" target="_blank">模式导出目录,因此我们无法导出模式。您可以提供room.schemaLocation注释处理器参数,或者将exportSchema设置为false。公共抽象类CrimeDatabase扩展了AndroidX.Room.RoomDatabase{^[WARN]请求了增量批注处理,但由于以下处理器不是增量的,因此禁用了支持:AndroidX.Room.RoomProcessor(non_increment).

任务:App:KaptDebugKotlin失败

共有1个答案

年嘉禧
2023-03-14

是否将转换器与数据库链接

@Database(
    entities = [
        Crime::class, ...
    ]
)
@TypeConverters(
    //...
    CrimeTypeConverters::class
)
abstract class CrimeDatabase : RoomDatabase() {
   //...
}

您可以看一下文档,有一种方法可以逐个案例地在实体上使用它,但我现在找不到一个引用。

我认为说明问题的关键词是:

...Cannot figure out how to save this field into database. You can consider adding a type converter for it. ...\CrimeDatabase.java:8: warning: Schema export directory is not provided to the annotation processor...
 类似资料: