我想在我的dao对象中拥有这样的方法
@Query("SELECT c.name, sum(p.value) FROM payments p, paymentCategories c WHERE p.categoryId = c.id GROUP BY c.name")
fun getCategoryStats(): Map<String, Float>
但是我得到了错误
错误:不确定如何将游标转换为此方法的返回类型 公共抽象java.util.Map
是否可以将其更改为工作版本?
因此返回的类型可以不同,但主要条件是
答案 0 :(得分:0)
虽然我不认为这可以在Dao中完成,但是在使用转换查询存储库或viewModel(或您要查询列表的任何地方)中的LiveData时可以轻松完成。由于我不知道您的数据名称,因此我使用了组合名称:
val categoryStatsMap: LiveData<Map<String, Float>> =
Transformations.map(
database.categoryStatsDao.getCategoryStats()) {it ->
it.map {it.key to it.value}.toMap()
}
“ it.key”和“ it.value”是实体对象中要用作...映射中的键和值对的字段。 转换为您提供了基于另一个实时数据对象的实时数据对象。我不知道开销是多少,但我认为它应该不会太大。