No se puede save el model de datos que contiene List <Model> con Room ORM Kotlin

Tengo un problema con Room ORM trabajando en Kotlin. Mi tarea es tener la capacidad de save y get models de datos RouteTemplateModel, que contiene la list de direcciones de tipo AddressModel y el object de la class RouteModel que contiene el título de la ruta específica. Aquí está mi código:

AddressModel.kt

@Entity(foreignKeys = arrayOf( ForeignKey(entity = RouteModel::class, parentColumns = arrayOf("routeId"), childColumns = arrayOf("parentId")))) data class AddressModel( @PrimaryKey(autoGenerate = true) var addressId: Long, var parentId: Long, var street: String, var house: String, var entrance: String, var title: String){ constructor(): this(0, 0, "", "", "", "") } 

RouteModel.kt

 @Entity data class RouteModel( @PrimaryKey(autoGenerate = true) var routeId: Long, var title: String) { constructor() : this(0, "") } 

Aquí están mis models simples, encontré en la documentation de Room que para crear relaciones entre models necesito usar @ForeignKey y @Relation

Entonces, con ejemplos de código en doc y tutoriales, creo RouteTemplateModel que contiene el object de RouteModel y la list de AddressModels . Aquí está la class

RouteTemplateModel

 class RouteTemplateModel{ private var id: Long = 0 @Embedded private var routeModel: RouteModel = RouteModel() @Relation(parentColumn = "routeId", entityColumn = "parentId") private var addressList: List<AddressModel> = listOf() constructor() constructor(id: Long, routeModel: RouteModel, title: String, addressList: List<AddressModel>){ this.id = id this.routeModel = routeModel this.addressList = addressList } fun getId(): Long{ return id } fun getRouteModel(): RouteModel{ return routeModel } fun getAddressList(): List<AddressModel>{ return addressList } fun setId(id: Long){ this.id = id } fun setRouteModel(routeModel: RouteModel){ this.routeModel = routeModel } fun setAddressList(addressList: List<AddressModel>){ this.addressList = addressList } } 

Entonces, ¿qué es un problema? Estoy recibiendo tales errores:

Error: las columnas devueltas por la consulta no tienen los campos [id] en com.innotech.webcab3kotlin.model.RouteTemplateModel a pesar de que están anotadas como no nulas o primitivas. Columnas devueltas por la consulta: [ID de ruta, título]

Y

Error: el tipo del parámetro debe ser una class anotada con @Entity o una colección / matriz de la misma.

Es un problema real, porque si trato de corregir el primer error y anotar en la variable de identificación RouteTemplateModel para devolver también esta columna, necesito anotar la class como Entidad (como en el segundo error), pero cuando lo hago recibo un error

Error: las entidades no pueden tener relaciones.

Aquí está AppDatabase.kt

 @Database(entities = arrayOf(RouteModel::class, AddressModel::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun getRouteDao(): RouteDao } 

y RouteDao.kt

 @Dao interface RouteDao { @Query("SELECT routeId, title FROM RouteModel") fun getAll(): List<RouteTemplateModel> @Insert fun insertAll(vararg models: RouteTemplateModel) @Delete fun delete(model: RouteTemplateModel) } 

Eso es realmente confuso Por favor, ayúdame)