Contexto
Hola, estoy trabajando con 2 tablas relacionadas por una clave foránea, WorkOrderItemUsage y WorkOrderItemUsageLot. Cada workOrderItemUsage puede tener múltiples lotes, por lo que es una relación de 1 a n, para facilitar mi trabajo, estoy implementando una entidad auxiliar llamada WorkOrderItemUsageWithLots, se usa para recuperar todos los datos de ambas tablas de una sola vez usando la sala @Relation.
Problema
Intenté usar @Relation con una sola columna y funciona correctamente, pero necesito establecer mi relación en función de una clave compuesta como la clave externa, entiendo que no hay soporte para claves compuestas usando @Relation Estoy tratando de vincularlo usando un índice, ¿me estoy perdiendo algo? ¿Tengo que negarme a usar @Relation a favor de las buenas uniones de SQL en las consultas?
woItemUsagePk en WorkOrderItemUsageWithLotsOpciones: woIdItemUsage, itemId, itemNumber, itemThirdNumber, itemDescription, cantidadMedida, branchId, branchDescription, locationId, doseQuantity, doseMeasureUnit, itemAction, itemPlague, itemJustification private java.util.List lotList
@Entity( primaryKeys = ["itemId", "branchId", "woIdItemUsage"], foreignKeys = [ ForeignKey(entity = WorkOrder::class, parentColumns = ["woId"], childColumns = ["woIdItemUsage"], onUpdate = ForeignKey.CASCADE, onDelete = ForeignKey.CASCADE)], indices = [Index("woIdItemUsage", "itemId", "branchId", name = "woItemUsagePk", unique = true)] @Entity( primaryKeys = ["woIdItemUsageLot", "itemId", "branchId", "lotId"], foreignKeys = [ ForeignKey(entity = WorkOrderItemUsage::class, parentColumns = ["woIdItemUsage", "itemId", "branchId"], childColumns = ["woIdItemUsageLot", "itemId", "branchId"], onUpdate = ForeignKey.CASCADE, onDelete = ForeignKey.CASCADE)], indices = [Index("woIdItemUsageLot", "itemId", "branchId", name = "woItemUsageLotPk", unique = true)]) class WorkOrderItemUsageWithLots(@Embedded var itemUsage: WorkOrderItemUsage) { @Relation(parentColumn = "woItemUsagePk", entityColumn= "woItemUsageLotPk") var lotList: List<WorkOrderItemUsageLot> = emptyList()}No tiene un campo woItemUsagePk declarado en su clase de entidad. Debe declarar un campo para contener el valor, Room no lo declarará dinámicamente por usted.