您的位置:首页 > 游戏 > 手游 > android room 多表查询

android room 多表查询

2024/12/25 21:55:46 来源:https://blog.csdn.net/LlanyW/article/details/139826376  浏览:    关键词:android room 多表查询

用一个data class来接收多表查的结果

Epc.kt 表1
@Entity(tableName = "epc",indices = [Index(value = ["epcId"], unique = true)]
)
data class Epc(/*** ID*/@PrimaryKey(autoGenerate = true)val _id: Int = 0,/*** 企业编码*/@ColumnInfo(name = "companyId")var companyId: String = "",/*** EPC 唯一编码*/@ColumnInfo(name = "epcId")var epcId: String = "",/*** EPC 唯一编码*/@ColumnInfo(name = "goodsId")var goodsId: Int = 0,/*** EPC 唯一编码*/@ColumnInfo(name = "epcCode")var epcCode: String = "",/*** epcUrl*/@ColumnInfo(name = "epcUrl")var epcUrl: String = "",) {@Ignoreconstructor():this(_id = 0, companyId="",epcId = "",  goodsId= 0)
}

Goods.kt 表2

@Entity(tableName = "goods",indices = [Index(value = ["goodsId"], unique = true)]
)
data class Goods(/*** ID*/@PrimaryKey(autoGenerate = true)val _id: Int = 0,/*** 企业编码*/@ColumnInfo(name = "companyId")var companyId: String = "",/*** 产品 唯一编码*/@ColumnInfo(name = "goodsId")var goodsId: Int = 0,/*** 产品 描述*/@ColumnInfo(name = "goodsDesc")var goodsDesc: String = "",
) {@Ignoreconstructor():this(_id = 0, companyId="", goodsId= 0, goodsDesc="")
}

EpcData 接收结果类

data class EpcData(/* @ColumnInfo(name = "goodsId")var goodsid: String = "",*/@Embeddedvar epc: Epc? = null, // : Goods;@Relation(parentColumn = "goodsId", entityColumn = "goodsId")var epcList: List<Goods>? = null
) : Serializable {@Ignoreconstructor() : this(epc = null, epcList = null)
}

DAO操作

//芯片表Db
@Dao
interface EpcDao {@SuppressWarnings(RoomWarnings.CURSOR_MISMATCH)@Transaction@Query("SELECT * FROM EPC INNER JOIN GOODS ON EPC.goodsId = goods.goodsId  where EPC.companyId=:companyId")fun getTableData(companyId: String): List<EpcData>?
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com