Android 将POJO添加到房间数据库表中

Android 将POJO添加到房间数据库表中,android,kotlin,android-room,pojo,Android,Kotlin,Android Room,Pojo,我有一个POJO类OfflineDataRequestInfo,我想将它作为我的实体OfflineData的一部分插入数据库表中。但我犯了个错误 请问我该怎么修 错误:无法确定如何将此字段保存到数据库中。可以考虑为其添加类型转换器。private final com.i6systems.offlineservicelibrary.offlineDatabase.OfflineDataRequestInfo requestInfoJsonX=null 这是我的密码 data class Offli

我有一个POJO类
OfflineDataRequestInfo
,我想将它作为我的实体
OfflineData
的一部分插入数据库表中。但我犯了个错误

请问我该怎么修

错误:无法确定如何将此字段保存到数据库中。可以考虑为其添加类型转换器。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()
                ))

如我所见,您有两种解决方法:

  • 为对象编写一个类型转换器
  • 添加注释
    @Embedded

  • 尝试了这一点,我得到一个字段只能用以下之一进行注释:ColumnInfo、Embedded、Relationwhen我删除ColumnInfo并使用Embedded时,它工作得很好Embedded val requestInfoJsonX:OfflineDataRequestInfo
    @Embedded
    @ColumnInfo(name="request_info_jsonX") 
    val requestInfoJsonX: OfflineDataRequestInfo