我想将服务器的响应保存在数据库中(父类)。 json具有嵌套对象,该对象也应保存在新表(嵌套类)中的数据库中。问题是我不知道如何编写类Parent和ParentDao以使其使用NestedDao
@Entity
data class Parent(
@PrimaryKey(autoGenerate = true)
var id: Long? = null,
@SerializedName(«nested»)
val homeTeam: Nested,
//other fields
)
@Entity
data class Nested(
@PrimaryKey(autoGenerate = true)
var nestedId: Long? = null,
@SerializedName("name")
val name: String,
//other fields
)
@Dao
interface ParentDao {
@Query("SELECT * FROM parent»)
fun getData(): Single<List<Parent>>
@Insert
fun insert(matches: List<Parent>)
}
这给我一个错误:无法弄清楚如何将该字段保存到数据库中。您可以考虑为其添加类型转换器。
那么,我该如何立即保存和查询带有嵌套的父项?
答案 0 :(得分:0)
我不知道您是否成功,但这是我的答案,希望对您有所帮助。 这就是我在项目中使用的内容,在Android docs
中建议在Room中使用@Entity
data class Parent(
@PrimaryKey(autoGenerate = true)
var id: Long? = null,
@Embedded @ColumnInfo(name= "nested")
val homeTeam: Nested,
//other fields
)
data class Nested(
@PrimaryKey(autoGenerate = true)
var nestedId: Long? = null,
@ColumnInfo(name= "name")
val name: String,
//other fields
)
@Dao
interface ParentDao {
@Query("SELECT * FROM parent»)
fun getData(): Single<List<Parent>>
@Insert
fun insert(matches: List<Parent>)
}