Android 将POJO添加到房间数据库表中
我有一个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
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