如何解决如何根据名称获取鸡尾酒列表
如果我将玛格丽塔酒放入我应用程序的searchView中,可以从名称中获取所有鸡尾酒的名称。它将返回所有与该查询匹配的鸡尾酒。我保存了用户所做的所有查询,即使他们处于离线状态也可以让他们搜索鸡尾酒。
我创建了此查询,如果鸡尾酒的名称与searchView中传递的名称匹配,则该查询应返回鸡尾酒的列表
@Query("SELECT *
FROM cocktailTable
WHERE cocktail_name = :cocktailName")
suspend fun getCocktails(cocktailName:String):List<CocktailEntity>
但是即使获取成功将这些鸡尾酒添加到我的数据库中,这也不会返回任何鸡尾酒,有什么线索吗?
我已经尝试过使用IN运算符
@Query("SELECT *
FROM cocktailTable
WHERE cocktail_name IN (:cocktailName)")
suspend fun getCocktails(cocktailName:String):List<CocktailEntity>
但是它也不会返回所有具有该名称的鸡尾酒
为通话添加了代码
override suspend fun getCocktailByName(cocktailName: String): Resource<List<Cocktail>>? {
when (val cocktailList = networkDataSource.getCocktailByName(cocktailName)) {
is Resource.Success -> {
for (cocktail in cocktailList.data) {
saveCocktail(cocktail.asCocktailEntity())
}
}
is Resource.Failure -> {
return getCocktails(cocktailName)
}
}
return getCocktails(cocktailName)
}
override suspend fun getCocktails(cocktailName: String): Resource<List<Cocktail>>? {
return cocktailDao.getCocktails(cocktailName)
}
解决方法
尝试LIKE '%' || :drinkName || '%'
,您的api可能会给您空格。您还可以在保存实体之前尝试修剪。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。