как запросить указанную c строку из списка строк в Android RoomDB - PullRequest
2 голосов
/ 29 апреля 2020

Можно ли запросить указанную c строку из списка строк в сущности в 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

Возвращает ноль.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2020

Вместо ==

, например

@Query("SELECT * FROM RADICAL WHERE radicalStrokes LIKE '%' ||  :radicalStrokes || '%' ")
suspend fun fetchRadical(radicalStrokes: String): Radical
, вы можете использовать LIKE (такой же, как метод contains ())
0 голосов
/ 29 апреля 2020
@ColumnInfo(name="radical_strokes")
val radicalStrokes:List<String>
)

вы используете список и ищете строку

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

, поэтому попробуйте использовать LIKE для этого в качестве ответа Eslam

...