Android,带有嵌入对象列表的 ROOM 查询

gme*_*tax 5 android android-sqlite android-room

我正在使用ROOM并且正在尝试获取具有特定Card.Code.

实体类就像这样

@Entity(tableName = "vehicles")
data class Vehicle(
    @PrimaryKey
    @ColumnInfo(name = "id") val id: Int,
    @ColumnInfo(name = "name") val name: String,
    @ColumnInfo(name = "cards") val cards: List<Card>?
)

@Entity
data class Card(
    @ColumnInfo(name = "id") val id: Int,
    @ColumnInfo(name = "code") val code: String
)
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何正确编写 SQL 查询

gme*_*tax 2

我的解决方案是这样的

@Query("SELECT name FROM vehicles WHERE cards LIKE '%' || :cardCode || '%'")
fun getVehicleNameOfCard(cardCode: String): String?
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它,我更喜欢更好的东西