Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 匹配多个列的文件室关系_Android_Android Room_Android Architecture Components - Fatal编程技术网

Android 匹配多个列的文件室关系

Android 匹配多个列的文件室关系,android,android-room,android-architecture-components,Android,Android Room,Android Architecture Components,我认为实体之间的关系应该如下所示: 概述->有很多->类别->有很多->交易 @Query("SELECT * FROM store_table WHERE userId = :userId AND storeId = :storeId") fun getStore(storeId:String, userId:String): StoreDb? @Query("SELECT * FROM product_table WHERE userId = :userId AND storeId = :

我认为实体之间的关系应该如下所示:

概述->有很多->类别->有很多->交易

@Query("SELECT * FROM store_table WHERE userId = :userId AND storeId = :storeId")
fun getStore(storeId:String, userId:String): StoreDb?

@Query("SELECT * FROM product_table WHERE userId = :userId AND storeId = :storeId")
fun getProducts(storeId:String, userId:String):List<ProdusctsDb>

@Transaction
fun getStoreWithProducts(storeId:String, userId:String): StoreWithProductsDb{
    val storeDb: StoreDb = getStore(storeId,userId) ?: return null
    val products = getProducts(storeId,userId)
    return  StoreWithProductsDb(storeDb, products)
}
如果Category.overviewId==Overview.id,则类别应包含在概述中。我很确定我应该能够通过@Relation注释实现这一点,比如:

@Relation(parentColumn = 'id', entityColumn = 'overviewId')
List<Category> categories;
@Relation(parentColumn = {'overviewId','categoryId'}, entityColumn = {'overviewId','categoryId'})
List<Transaction> transactions;
@关系(parentColumn='id',entityColumn='overviewId')
列出类别;
然后,在类别实体中,我希望包括Transaction.overviewId==Category.overviewId&&Transaction.categoryId==Category.categoryId的任何事务。这是我正在努力解决的问题,因为@Relation注释似乎只能考虑1列。我想我想要这样的东西:

@Relation(parentColumn = 'id', entityColumn = 'overviewId')
List<Category> categories;
@Relation(parentColumn = {'overviewId','categoryId'}, entityColumn = {'overviewId','categoryId'})
List<Transaction> transactions;
@关系(parentColumn={'overviewId','categoryId'},entityColumn={'overviewId','categoryId'})
列出交易记录;
但这似乎不是一种有效的做事方式。 有人知道我应该如何做到这一点吗?
我想最终我希望能够观察到一个查询,该查询将在相关概述、类别或事务更新时更新,因此在概述中嵌入类别和事务似乎是最好的方法,但如果有更好的方法,最好能听到它。

也有同样的问题,提出了@Transaction

@Query("SELECT * FROM store_table WHERE userId = :userId AND storeId = :storeId")
fun getStore(storeId:String, userId:String): StoreDb?

@Query("SELECT * FROM product_table WHERE userId = :userId AND storeId = :storeId")
fun getProducts(storeId:String, userId:String):List<ProdusctsDb>

@Transaction
fun getStoreWithProducts(storeId:String, userId:String): StoreWithProductsDb{
    val storeDb: StoreDb = getStore(storeId,userId) ?: return null
    val products = getProducts(storeId,userId)
    return  StoreWithProductsDb(storeDb, products)
}
@Query(“从store_表中选择*,其中userId=:userId和storeId=:storeId”)
有趣的getStore(storeId:String,userId:String):StoreDb?
@查询(“从产品_表中选择*,其中userId=:userId和storeId=:storeId”)
fun-getProducts(storeId:String,userId:String):列表
@交易
趣味getStoreWithProducts(storeId:String,userId:String):StoreWithProductsDb{
val storeDb:storeDb=getStore(storeId,userId)?:返回null
val products=getProducts(storeId,userId)
退货仓库和产品数据库(仓库数据库,产品)
}
其中StoreWithProductsDb是常用的数据类

data class StoreWithProductsDb(val storeDb: StoreDb, val products: List<ProductsDb>)
数据类StoreWithProductsDb(val-storeDb:storeDb,val-products:List)
注:刚刚采用的例子所有的名字都是随机的