我正在使用typeconverter将列表保存在Room数据库中。现在,我想查询数据库并检索列表中包含特定整数的对象。 例如: Object1 List包含整数1、2、3,而当我仅查询整数1时,它将检索对象1。
这是我正在尝试的: 我的Entiy:
Runnable
我的类型转换器:
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("inside runnable");
try {
Thread.sleep(100000);
} catch (InterruptedException e) {
//
}
}
}
我的道:
@Entity(tableName = "exercises")
public class Exercise {
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = "api_id")
private int apiId;
@ColumnInfo(name = "exercise_name")
private String exerciseName;
@ColumnInfo(name = "image_path")
private String imagePath;
@ColumnInfo(name = "youtube_key")
private String youtubeKey;
@ColumnInfo(name = "exercise_type")
private int exerciseType;
@ColumnInfo(name = "muscle_group")
private List<Integer> muscleGroup;
@ColumnInfo(name = "secondary_muscles")
private List<Integer> secondaryMuscles;
@ColumnInfo(name = "notes")
private String notes;
还有我的ViewModel:
@TypeConverter
public static String fromList(List<Integer> list){
Gson gson = new Gson();
String json = gson.toJson(list);
return json;
}
@TypeConverter
public static List<Integer> fromString(String string){
Type listType = new TypeToken<List<Integer>>() {}.getType();
return new Gson().fromJson(string, listType);
}
有人想知道我想要的是可能的吗?还是我需要像检索全部一样进行工作,而不是在for循环中进行选择?感谢您的投入。