微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将POJO添加到Room数据库表中

如何解决将POJO添加到Room数据库表中

我有一个POJO类OfflineDataRequestInfo,我想将其插入数据库表作为OfflineData的一部分,而error: Cannot figure out how to save this field into database. You can consider adding a type converter for it. private final com.i6systems.offlineservicelibrary.offlineDatabase.OfflineDataRequestInfo requestInfojsonx = null;是我的实体。但是我得到一个错误

我该如何解决这个问题

data class OfflineDataRequestInfo ( val status: String,val userId: String,val fuelOrderId: String,val timeStamp: String,val fuelOrder: String ) @Entity data class OfflineData ( @PrimaryKey(autoGenerate = true) val uid: Int = 0,@ColumnInfo(name = "request_info_json") val requestInfoJson: String?,@ColumnInfo(name="request_code") val requestCode: String?,@ColumnInfo(name="request_info_jsonx") val requestInfojsonx: OfflineDataRequestInfo )

这是我的代码

suspend fun insertOfflineData(requestInfoJson: String,requestCode: String,offlineDataRequestInfo: OfflineDataRequestInfo): Long {
        var result: Long = 0
        result = OfflineDatabaseManager.getInstance(app.applicationContext).insertOfflineData(
            OfflineData(
                0,requestInfoJson,requestCode,offlineDataRequestInfo
            ))
        return result
    }

offlineHelper.insertOfflineData(
                    inPositionApiData.toString(),"notifyInPosition",OfflineDataRequestInfo(
                    "in-position",action.userId,id,action.timestamp.toString(),fuelOrderData.toString()
                ))

这不是我要插入的

$users = DB::table('users')
                ->whereIn('id',[1,2,3])
                ->get();

解决方法

我看到您有两种解决方法:

  1. 为对象TypeConverter写一个OfflineDataRequestInfo
  2. 添加注释@Embedded
@Embedded
@ColumnInfo(name="request_info_jsonX") 
val requestInfoJsonX: OfflineDataRequestInfo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。