相关疑难解决方法(0)

室内数据库中的硬编码布尔查询

我正在构建一个Android应用程序,显示用户可能匹配的列表.用户可以单击一个以喜欢该用户,并在本地保存所有这些喜欢.

我可以编写一个查询来获取匹配列表,如下所示:

@Query("SELECT * FROM match WHERE liked = :liked ORDER BY match DESC LIMIT :limit")
fun getMatches(limit: Int = 6, liked: Boolean = true): Flowable<List<Match>>
Run Code Online (Sandbox Code Playgroud)

我已经知道这很好用.但是,我没有预见到任何我会设置liked为false的情况,所以我很好奇是否有办法硬编码我的布尔条件?如果我尝试:

@Query("SELECT * FROM match WHERE liked = true ORDER BY match DESC LIMIT :limit")
Run Code Online (Sandbox Code Playgroud)

我在编译时遇到以下错误:

Error:(8, 0) Gradle: error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such column: true)
Run Code Online (Sandbox Code Playgroud)

如何在查询字符串中对此布尔值进行硬编码?

我也尝试过:

  • 用单引号包装条件
    • @Query("SELECT * FROM match WHERE liked = 'true' ORDER BY match DESC …

android android-room

47
推荐指数
3
解决办法
2万
查看次数

房间数据库具有一对一的关系

我有2个实体,硬币和CoinRevenue.

基本上,硬币以其他货币持有美元价格.

例如,带符号EUR的硬币,值为1.0356

@Entity(tableName = "coin")
data class Coin(
        @field:PrimaryKey(autoGenerate = false)
        var id: String = "",
        var symbol: String = "",
        var pricInUsd: Float = 0f)
Run Code Online (Sandbox Code Playgroud)

CoinRevenue是一个实体,我用它来保存用户拥有的特定硬币的硬币数量.例如,CoinRevenue与Coin Entity有关,EUR符号和金额为1000.

@Entity(tableName = "coinRevenue")
    data class CoinRevenueNew(
            @field:PrimaryKey(autoGenerate = true)
            var id: Int = 0,
            var coin: Coin? = null,
            var amount: Float = 0f)
Run Code Online (Sandbox Code Playgroud)

现在我想从数据库中获取CoinRevenue并从数据库中获取更新的Coin.

例如,我用硬币保存了硬币(EUR,1.0253),而不是使用该硬币保存了CoinRevenue.

之后我用(EUR,2.522)更新了Coin我希望CoinRevenue中的Coin对象也会更新.

我知道@Embedded只是将内部objet字段作为列添加到同一个父对象.当我使用关系时,我必须使用List或Set.但我在CoinRevenue里总是有1枚硬币.

我的硬币DA:

@Query("select * from coin order by rank")
fun getAllCoins(): Flowable<List<CoinDB>>

@Query("select * from coin where rank = 1")
fun getFirstCoin(): Maybe<CoinDB>

@Query("select …
Run Code Online (Sandbox Code Playgroud)

database android entity android-room

12
推荐指数
3
解决办法
8910
查看次数

标签 统计

android ×2

android-room ×2

database ×1

entity ×1