我有一个实体之间的关系,应该是这样的:
概述->有许多->类别->有许多->事务
如果Category.overviewId == Overview.id,则应将类别包括在概述中。我非常确定我应该能够通过@Relation注解来实现这一点,例如:
@Relation(parentColumn = 'id', entityColumn = 'overviewId')
List<Category> categories;然后,在类别实体中,我希望包括Transaction.overviewId == Category.overviewId && Transaction.categoryId == Category.categoryId中的任何事务。这是我正在努力解决的部分,因为@Relation注释似乎只能考虑1列。我想我想要这样的东西:
@Relation(parentColumn = {'overviewId','categoryId'}, entityColumn = {'overviewId','categoryId'})
List<Transaction> transactions;但这似乎不是一种有效的做事方式。有人知道我应该如何做到这一点吗?我想最终我希望能够观察到每当相关的Overview、Category或Transaction更新时都会更新的查询,因此在Overview中嵌入类别和事务似乎是最好的方法,但如果有更好的方法,那就太好了。
发布于 2019-08-30 23:06:03
有同样的问题,想出了@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)
}其中StoreWithProductsDb是通常的数据类
data class StoreWithProductsDb(val storeDb: StoreDb, val products: List<ProductsDb>)附言:只是采用的例子,所有的名字都是随机的
https://stackoverflow.com/questions/51475631
复制相似问题