我需要你的帮助。我试图在没有反序列化的情况下找到解决方案,但我什么也没找到。如果你能帮我就好了...所以我有了下面的JSON文件
"resources": [{
"id": 441988,
"name": "TVA",
"parent": {
"id": 159
},
},
{
"id": 441900,
"name": "Marketing",
"parent": {
"id": 166
},
}]
@Entity(tableName = "resources")
class CategoryBean {
@PrimaryKey
@ColumnInfo(name = "resource_id")
@SerializedName("id")
private var mId: Int = 0
@ColumnInfo(name = "name")
@SerializedName("name")
private var mName: String? = null
@ColumnInfo(name = "parent")
@SerializedName("parent")
private var mParent: ParentBean? = null
fun getId(): Int {
return mId
}
fun getName(): String? {
return mName
}
fun getParent(): ParentBean? {
return mParent
}
fun setParent(parent: ParentBean) {
mParent = parent
}
fun setId(id: Int) {
mId = id
}
fun setName(name: String) {
mName = name
}
class ParentBean {
@SerializedName("id")
private var mId: Int = 0
fun getId(): Int? {
return mId
}
}
谢谢你的时间和帮助。
我有以下错误:
Cannot figure out how to save this field into database. You can consider adding a type converter for it.
Room工作在SQLite数据库之上,当您将类注释为@Entity
时,您正在创建一个表,该表的列是根据类的属性定义的,因此您不能直接存储像ParentBean
这样的自定义类型,为此,您需要将Mparent
属性注释为@Embedded
:
@Entity(tableName = "resources")
class CategoryBean constructor(
@PrimaryKey
@ColumnInfo(name = "resource_id")
@SerializedName("id")
var mId: Int,
@ColumnInfo(name = "name")
@SerializedName("name")
var mName: String?,
@SerializedName("parent")
@Embedded
var mParent: ParentBean?
)
然后在ParentBean
中为属性定义列名:
data class ParentBean constructor(@SerializedName("id") @ColumnInfo(name = "parent_id")var mId: Int)
资源表将具有以下列:resource_id
、name
、parent_id
来源:https://developer.android.com/training/data-storage/room/defining-data
注意:您不需要在Kotlin中手动定义getter和setter。
我试图创建Room数据库并向其插入值,但我得到了这个错误: 公共抽象类WeatherDatabase扩展了AndroidX.Room.RoomDatabase{^error:无法知道如何将此字段保存到数据库中。可以考虑为它添加类型转换器。AndroidX.Room.RoomDatabaseError中的-mDatabase:无法确定如何将此字段保存到数据库中。可以考虑为它添加类型转换器。Andro
请大家帮忙支持我,谢谢!
我试图找到一种方法来保存复选框的状态到房间数据库,但当我点击复选框并重新打开应用程序时,它的状态并没有改变。我不知道我哪里出错了。我已经搜索了前面的问题,但找不到解决办法。下面是我的代码和感谢。 TodoAdapter 主体活动
已经创建了一个@Embedded类播放器。我想在其中添加ArrayList字段,该字段使用@TypeConverters,它在保存时将列表转换为Gson,在加载时将其转换为Gson。请告诉我如何在void migrate() 方法中请求将列表添加到Player类的现有实例中。 类保存: TypeConverter:
我正在尝试在我的设计表单上添加一个额外的字段,如下所示: 我必须允许额外的字段,所以我创建了一个新的初始值设定项devise_permitted_parameters.rb,如下所示 输出如下: "email"=? LIMIT?[["email","wtgwg@gmail.com "], ["LIMIT",1]]SQL(1.1ms)插入到"用户"("email","encrypted_passwo
我在我的android应用程序中使用了reverfit2和Rxjava2作为网络库,NodeJS和MongoDB作为后端服务,我想从服务器获取数据,并将数据存储在房间数据库中,以便如果用户再次打开应用程序,它将从房间获取数据,而不是从服务器获取数据,直到服务器上添加了一些新的数据。 我想达到的目标: 1)从服务器获取数据后,存储在房间数据库中。 2)显示房间数据库中数据,直到服务器上更新了一些新数