【问题标题】:Cannot figure out how to save this field into database. You can consider adding a type converter for it无法弄清楚如何将此字段保存到数据库中。您可以考虑为其添加类型转换器
【发布时间】:2021-02-16 03:56:59
【问题描述】:

文件Crime.kt

@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()
    }
}

错误: 错误:无法弄清楚如何将此字段保存到数据库中。您可以考虑为其添加类型转换器。 私有 java.util.Date 日期; C:\Users\ASUS\AndroidStudioProjects\CriminalIntentv2\app\build\tmp\kapt3\stubs\debug\com\bignerdranch\android\criminalintent\database\CrimeDatabase.java:8:警告:未向注释提供架构导出目录处理器,因此我们无法导出架构。您可以提供 room.schemaLocation 注释处理器参数或将 exportSchema 设置为 false。 公共抽象类犯罪数据库扩展 androidx.room.RoomDatabase { ^[WARN] 请求增量注释处理,但支持被禁用,因为以下处理器不是增量的:androidx.room.RoomProcessor (NON_INCREMENTAL)。

任务:app:kaptDebugKotlin 失败

【问题讨论】:

  • 你在哪里有 @TypeConverters 注释来将 Room 指向你的 @TypeConverter
  • 顺便说一句,UUID 作为 id 通常是一个不好的做法,如果你只是想方便的话:@PrimaryKey(autoGenerate = true)

标签: android kotlin


【解决方案1】:

您是否将转换器与您的数据库相关联

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

你可以看看documentation,有一种方法可以在实体上逐个使用它,但我现在找不到参考。

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

...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...

【讨论】:

    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多