【问题标题】:Room query not working with List<String> using a type converter房间查询不适用于使用类型转换器的 List<String>
【发布时间】:2020-04-18 11:25:07
【问题描述】:

我正在尝试在 Room 中进行 sqlite 查询,其中我有一个可以为空或不为空的搜索字符串。如果为空,则我想返回特定类型的所有项目,否则我想返回与搜索字符串匹配且属于特定类型的任何内容。该类型在我的模型中定义为 List,如下所示:

@TypeConverters(DataConverter::class)
var type: List<String>? = null,

我写了一个查询,但它没有考虑类型并返回包含搜索查询的所有内容。我做错了什么?

SELECT * FROM practice 
    WHERE type LIKE '%' || 'video' || '%'
    AND (title LIKE '%' || :query || '%' 
    OR content LIKE '%' || :query || '%' 
    OR categories LIKE '%' || :query || '%' 
    OR tags LIKE '%' || :query || '%')
    ORDER BY id ASC LIMIT (:page * :pageSize)

【问题讨论】:

    标签: sqlite android-room


    【解决方案1】:

    好的,我发现了问题,我试图将字符串与列表匹配,因为使用类型转换器,它作为字符串存储在数据库中。但实际上它被转换回查询列表,所以我将 'video' 更改为 listOf('video') 以解决问题。

    【讨论】:

      猜你喜欢
      • 2018-07-06
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多