【问题标题】:Get Rows Values with unique id in Room Database Android在房间数据库Android中获取具有唯一ID的行值
【发布时间】:2021-03-05 09:12:21
【问题描述】:

我将从房间数据库中获取具有唯一 ID 和“产品”列值的行值。

我也有 ProductDao 和 Product Database 和 Product Class 模型。

但我不知道如何设置从产品数据库中获取行值的函数。

过滤条件是价格值和鞋类。

类别为“鞋子”,价值大于 30 美元且小于 50 美元。

类别 == “鞋子” && 价值 >= 30 && 价值

请帮助我如何制作获取满足条件的行值的函数。

【问题讨论】:

    标签: android database android-room


    【解决方案1】:

    给定 PRODUCT 表,您必须创建一个 @Dao 接口并声明如下查询函数:

    @Dao
    interface ProductDao {
    
        @Query("select * from PRODUCT where category = :c and value < :v")
        suspend fun getProducts(c: String, v: Double): List<Product>
    }
    

    您可以使用 LievData 并声明相同的函数,如下所示:

    @Query("select * from PRODUCT where category=:c and value < :v")
    fun getProduct(c: String, v: Double): LiveData<List<Product>>
    

    函数参数替换查询中的占位符,getProducts 将返回类别等于参数'c'且值小于参数'v'。如果您还创建一个存储库,那就更好了。如果您使用 Livedata,请不要将函数声明为

    暂停

    否则你会得到一个编译错误。在这种情况下 LiveData 不需要挂起函数。

    有关详细信息,请参阅 Room 文档。

    【讨论】:

    • 感谢您的回复,@Sergiob。我非常感谢你的好意帮助。我以前没有听说过 LiveData。我认为 LiveData 是运行我的函数的一种非常好的方法。你能给我关于 LiveData 的链接或文档吗?提前谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 2018-06-13
    • 2021-08-06
    相关资源
    最近更新 更多