背景
你好,我正在处理两个通过外键关联的表,WorkOrderItemUsage和WorkOrderItemUsageLot。每个workOrderItemUsage可以有多个批次,因此它是一个1到n的关系,为了使我的工作更容易,我正在实现一个辅助实体称为WorkOrderItemUsageWithLots,它用于使用room @Relation一次检索来自两个表的所有数据。
问题
我尝试使用@Relation与单个列,并且它可以正确工作,但我需要基于复合键(如外键)建立我的关系,我了解到@Relation不支持复合键,我正在尝试使用索引进行链接,我错过了什么吗?我必须拒绝使用@Relation而支持在查询中使用SQL连接吗?
- error: Cannot find the parent entity column
woItemUsagePk
in WorkOrderItemUsageWithLots - Error prints the available columns for @Relation
Options: woIdItemUsage, itemId, itemNumber, itemThirdNumber, itemDescription, quantityMeasure, 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()}