Предположим, у меня есть две таблицы Parent и child.
Это схема родительской таблицы
Это схема дочерней таблицы
когда мы применяем соединение (отношение) к этим двум таблицам, как это
отношение к этим двум таблицам. Но это возвращает список объектов, которые содержат как родительские, так и дочерние данные. Но требованием модели для представления вложенного ресайклера является такой родительско-дочерний объект.
Родительская модель
Дочерняя модель
Итак, основная проблема заключается в том, чтобы преобразовать список, полученный после применения отношения, в список типа «родитель-потомок».
Я новичок и не так много знаю о Room DB, если я пойду не так, пожалуйста, позвольте мне исправить это.
Спасибо.
Решение проблемы
Заменить родительский и дочерний в отношении:
data class BagWithSkuViewModel (
@Embedded
val bag: BagEntity,
@Relation(parentColumn = "bag_uid", entityColumn = "bag_id", entity = SkuEntity.class)
val skus: List<SkuEntity>
)
Теперь вы можете преобразовать его в свою родительскую модель, измененную на класс данных:
data class HeadBagModel(var bagUid: String? = null,
var bagWeight: String? = null,
var bagStatus: String? = null,
var skuList: ArrayList<ScuEntity>? = null)
fun BagWithSkuViewModel.toHeadBagModel(): HeadBagModel {
return HeadBagModel(this.bag.bag_uid,
this.bag.bag_weight,
this.bag.bagStatus,
this.skus) // your SkuEntity and ChildSkuModel are almost same, but if you need ChildSkuModel here, you can add another converter
}
Комментариев нет:
Отправить комментарий