Я использую Room for DB и у меня есть таблица с названием «Продукты».
Класс продуктов Entity имеет теги ArrayList'String '.
@Entity Class Products { some auto generate primary key; String name; ArrayList<String>tags;}
Я хочу искать товары по тегу, так как это сделать?
Можем ли мы использовать теги в предложении where? Я попробовал ниже, но не сработало:
select name from Products where tags IN (:value)
List<String> getSearchedProducts(String value);
Использование этого конвертера типов для сохранения списка.
public class StringListConverters {
private static Gson gson = new Gson();
@TypeConverter
public static ArrayList<String> fromString(String data) {
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
return gson.fromJson(data, listType);
}
@TypeConverter
public static String fromArrayList(ArrayList<String> list) {
return gson.toJson(list);
}
}
Для поиска по имени это работает, но для поиска по тегу - нет.
Больше, чем синтаксис, исправление ошибок и т. Д. Здесь я ищу подход к поиску коллекций в комнате DB.