【问题标题】:Room select expression房间选择表达式
【发布时间】:2019-06-18 11:08:33
【问题描述】:

我需要创建一个不那么简单的 Sql 选择查询。

类似这样的:

 @Query("$SELECT_FROM  $PRODUCT_TRANSACTION_TABLE WHERE write_status == ($SALE || $AUDIT)")
    fun loadProductSaleTransactions(): LiveData<List<TransactionProductTable>>

该字段可以是 Sale 或 `Audit

但是房间一无所有。 你能帮我写正确吗?

【问题讨论】:

  • 您似乎使用了很多常量,您也可以分享它们的值吗?
  • 扩展您的 SQL 语句并在带有数据库副本的 DB Browser 等 SQLite 工具中手动尝试。
  • @CommonsWare 会尝试,感谢工具的建议!

标签: android kotlin android-room android-architecture-components


【解决方案1】:

我建议将查询更改为:

 @Query("$SELECT_FROM  $PRODUCT_TRANSACTION_TABLE WHERE write_status IN ($SALE, $AUDIT)")
    fun loadProductSaleTransactions(): LiveData<List<TransactionProductTable>>

如果这能解决问题,请告诉我。干杯!

【讨论】:

    【解决方案2】:

    只需在 WHERE 子句之后更改,如下所示

    @Query(
    "$SELECT_FROM  $PRODUCT_TRANSACTION_TABLE WHERE
     write_status = $SALE OR write_status =  $AUDIT"
    ) fun loadProductSaleTransactions(): LiveData<List<TransactionProductTable>>
    

    【讨论】:

      【解决方案3】:
      @Query("$SELECT_FROM  $PRODUCT_TRANSACTION_TABLE WHERE write_status IN ($SALE, $AUDIT)")fun loadProductSaleTransactions(): LiveData<List<TransactionProductTable>>
      

      【讨论】:

        猜你喜欢
        • 2013-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2012-11-18
        • 2015-04-29
        • 2011-06-18
        • 1970-01-01
        相关资源
        最近更新 更多