美文网首页
Android room persistent library

Android room persistent library

作者: 南窗云 | 来源:发表于2018-08-02 12:44 被阅读0次

Room存储集合的时候,需要类型转换

e: /Users/jake/Documents/code/riseon_android/riseon-parents-android/app/build/tmp/kapt3/stubs/onlineDebug/com/risecenter/parent/data/local/entity/TaskRecentEntity.java:28: 错误: Cannot figure out how to save this field into database. You can consider adding a type converter for it.
    private com.risecenter.model.UploadImage tasks;

解决步骤

1. 加注解 @TypeConverters ,注意不是 @TypeConverter,这样会报错
/**
 * <pre>
 *     author : jake
 *     time   : 2018/07/31
 *     function   : 近期任务表(家庭作业)
 *     version: 1.0
 * </pre>
 */

@Entity(tableName = "rise_task_recent", primaryKeys = ["id"])
data class TaskRecentEntity(
        val id: String,
        //      过期时间
        var finished_at: String?,
        //      完成/未完成
        var status: String?,
        //      通过/驳回
        var submit_status: String?,
        //      过期/未过期
        var date_status: String?,
        //      任务详情
        @TypeConverters(TasksConverter::class)
        var tasks: List<Tasks>?
) 

就因为上面注解的错了,折腾了好久

编译不过去,重要的事情说三遍
重要的事情说三遍:
加注解 @TypeConverters ,注意不是 @TypeConverter
加注解 @TypeConverters ,注意不是 @TypeConverter
加注解 @TypeConverters ,注意不是 @TypeConverter
2. 转换类代码
/**
 * <pre>
 *     author : jake
 *     time   : 2018/08/02
 *     function   : 任务详情数据转换类
 *     version: 1.0
 * </pre>
 */

class TasksConverter {

    @TypeConverter
    fun getTasksFromString(value: String): List<Tasks>? {
        return Gson().fromJson<List<Tasks>>(value, object : TypeToken<List<Tasks>>() {

        }.type)
    }

    @TypeConverter
    fun storeTasksToString(tasks: List<Tasks>): String {
        return Gson().toJson(tasks)
    }
}
3. bean
data class Tasks(
        val id: String?,
        val type: String?,
        val description: String?,
//        学生作业完成状态
        val finished: String?,
//        学生作业是否被驳回
        val rejected: String?,
        val resource: Resource?
)

相关文章

网友评论

      本文标题:Android room persistent library

      本文链接:https://www.haomeiwen.com/subject/teyjvftx.html