【发布时间】:2020-10-02 05:46:54
【问题描述】:
我有一个这样的用户表
@Entity(tableName = "users")
data class Users(
@ColumnInfo(name = "id") @PrimaryKey val id: String,
@ColumnInfo(name = "fullName") val fullName: String
...
)
现在我有来自 REST 的事件信息
{
"id": 1,
"eventName": "Event name",
...
"participantList": [
{
"userId": 1,
"status": "going"
},
{
"userId": 2,
"status": "interested"
}
]
}
如何将其保存在 Room 中以及实体和关系应该是什么,以便我可以拥有一个包含用户列表和每个用户状态的 Event 实体。例如
data class Event(
val id:Int,
val eventName: String,
val participantList: List<UserWithStatus>
)
data class UserWithStatus(
val user:User,
val status:String
)
【问题讨论】:
-
将 json 数据解析为对象.. 制作事件对象并将事件插入到 database.iniside DAO 类中,您应该有这样的查询 @Insert void insert(Event events);一旦你解析了 json 对象。比如 val event= response.body() mydatabase.eventdao().insert(event)
-
我可以这样做,但问题是我可以从 REST 中获取用户 ID,我可以保存它但是当我查询它时,如何获取相关用户的用户信息的事件信息
标签: android kotlin retrofit android-room