android - how to query a specific string from a list of string in Android RoomDB
问题描述
Is it possible to query a specific string from a list of string in an Entity in RoomDB?
here is my Entity
@Entity
data class Radical(
@PrimaryKey
val pkey: Int = 0,
@ColumnInfo(name="radical_name")
val radicalName: String,
@ColumnInfo(name="radical_strokes")
val radicalStrokes:List<String>
)
Then my interface would be like
@Query("SELECT * FROM RADICAL WHERE radicalStrokes == :radicalStrokes")
suspend fun fetchRadical(radicalStrokes: String): Radical
It returns null.
解决方案
您可以使用LIKE
(与 contains() 方法相同)而不是 ==
例如
@Query("SELECT * FROM RADICAL WHERE radicalStrokes LIKE '%' || :radicalStrokes || '%' ")
suspend fun fetchRadical(radicalStrokes: String): Radical
推荐阅读
- c# - 如何在 Json.NET 中将某些特殊值视为空/默认值?
- jquery - 循环遍历 div - 将类添加到上一个和下一个 div
- android - 如何连接声明和 If 语句?
- list - 列表的“最大”功能是否仅在单独的功能中起作用?
- javascript - 在 Javascript 中格式化日期
- c# - Unity Android MySQL连接功能失败:索引超出数组范围
- django - ManyToMany 模型文件检查更新次数或使用 m2m 信号添加
- square-connect - 通过 API 的招标方法
- javascript - 在 document.write() 之前获取文档 HTML;
- swift - 更改 TimeInterval 并更新 CAbasicAnimation