GOOGLE ADS

воскресенье, 1 мая 2022 г.

Как преобразовать объект данных, полученный из Room Relation, в пользовательский объект типа Parent-Child в android kotlin

Предположим, у меня есть две таблицы 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
}

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...