如何解决如何在房间中使用@Relation
{
"id": 7,"title": "Reading monthly hot list in January","img_url": "http://image.wufazhuce.com/FteWZbumJ0vugA_oF-tjk9OxOhT5","contents": [
{
"id": "4582","title": "How to say goodbye","subtitle": "Gengsheng Su","category": 1,"cover": "http://image.wufazhuce.com/FnBm-nZ-fQIit227taKI9Tue_9sx?imageView2/1/w/120/h/120","maketime": "2021-01-20 06:00:00","weight": 15
},{
"id": "4567","title": "Go to RT Mart","subtitle": "Zhanhei Wang","cover": "http://image.wufazhuce.com/Fv2ZTzdL0LjfzB8q5N_mp_7h5Ti8?imageView2/1/w/120/h/120","maketime": "2021-01-09 06:00:00","weight": 14
},{
"id": "4560","title": "cLOUD MADE BY RAIN","subtitle": "GongChen","cover": "http://image.wufazhuce.com/FnZhpbcENaSm6Fmnjfxaz0oAgXzo?imageView2/1/w/120/h/120","maketime": "2021-01-01 06:00:00","weight": 13
}
]
}
我想使用这个 json 转换为 bean,并将它存储在我的 房间。 但我不知道如何存储它。也许我对Room不熟悉。
我尝试使用它
@Entity(tableName = "rebang_cache")
data class ReBang(
@PrimaryKey
var id: Int,var title: String?,var img_url: String?,@Relation(
parentColumn = "id",entityColumn = "id")
val contents: List<ContentBean>?) {
@Entity
data class ContentBean(@PrimaryKey
var id: String,var subtitle: String?,var category: Int?,var cover: String?,var maketime: String?,var weight: Int?)
}
但它是错误的。我想知道如何实现它。
我认为这是个好问题!
解决方法
您需要先为父子对象定义实体类:
@Entity(tableName = "rebang_cache")
data class ReBang(
@PrimaryKey
val id: Long,val title: String
//...)
@Entity
data class ContentBean(
@PrimaryKey val id: Long,//parent model reference id
val rebangId: Long,val title: String,//..)
然后使用@Relation
注解定义一对多关系
data class ReBangWithContents(
@Embedded val rehang: ReBang,@Relation(
parentColumn = "id"
entityColumn = "rebangId"
)
val contents: List<ContentBean>
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。