android - 如何从 Android RoomDB 中的字符串列表中查询特定字符串

标签 android kotlin android-room

是否可以从 RoomDB 实体的字符串列表中查询特定字符串?

这是我的实体

 @Entity
data class Radical(
@PrimaryKey
val pkey: Int = 0,
@ColumnInfo(name="radical_name")
val radicalName: String,
@ColumnInfo(name="radical_strokes")
val radicalStrokes:List<String>
)

那么我的界面就会像

@Query("SELECT * FROM RADICAL WHERE radicalStrokes == :radicalStrokes")
suspend fun fetchRadical(radicalStrokes: String): Radical

返回 null。

最佳答案

您可以使用LIKE(与 contains() 方法相同)而不是 ==

例如

@Query("SELECT * FROM RADICAL WHERE radicalStrokes LIKE '%' ||  :radicalStrokes || '%' ")
suspend fun fetchRadical(radicalStrokes: String): Radical

关于android - 如何从 Android RoomDB 中的字符串列表中查询特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61489914/

相关文章:

kotlin - 搜索 kotlin 空数据类主构造函数的解决方法

android - 嵌入式列表 - 如何?

android - Rxjava 3 + Retrofit2 - 多次插入数据库问题

android - 房间获取 ConcurrentModificationException

android - 带有触摸事件的 Canvas 中的图像

android - 选项卡中的图标未显示

测试类中的 java.util.logging.Logger

android - Google Play 说我使用 Android Studio Build->Generate Signed APK 构建的 APK 是可调试的

java - Google 自动补全地点、地点名称为纬度/经度

java - 找不到 androidsdk.modules