Мой ответ json:
{
"categories": [
{
"categoryName": "Events",
"entityId": "QwN9goUaw6",
.....
}
],
"entityId": "T1nnwwpjOM"
}
Мой первоначальный план состоял в том, чтобы следить за тем, как Google сделал это в своем GithubSampleBrowser, за исключением того, что они меняют значение List Integer на List String с помощью методов StringUtil, поэтому я решилизмените тактику и попробуйте следовать тому, что некоторые другие сказали здесь, чтобы преобразовать его в String и обратно в ArrayList.
Я думал, что у меня был правильный запрос, который я хотел в конечном итоге сделать, то есть
@Query("SELECT * FROM category_table WHERE entityId in (:entityId) ORDER BY sortIndex ASC")
public abstract LiveData<List<Category>> loadById(List<String> entityId);
Мои модели в настоящее время выглядят так:
КатегорияSearchResult
@NonNull
@PrimaryKey
private String entityId;
@Nullable
private String query;
public List<Category> categories;
private String lastUpdated;
Категория
@NonNull
@PrimaryKey(autoGenerate = true)
private int id;
private Integer sortIndex;
private String storyboardId;
@NonNull
private String entityId;
private String categoryName;
private String menuId;
Моя попытка преобразователей:
@TypeConverter
public static List<Category> fromStringToCategory(String value) {
if (value != null) {
Gson gson = new Gson();
Type type = new TypeToken<List<Category>>() {
}.getType();
List<Category> categoryList = gson.fromJson(value,type);
return categoryList;
}
return null;
}
@TypeConverter
public static String fromCategoryToString(List<Category> categories) {
if (categories != null) {
Gson gson = new Gson();
Type type = new TypeToken<List<Category>>() {
}.getType();
String json = gson.toJson(categories, type);
return json;
}
return null;
}
То, что я подумал, может быть проще, это сгенерировать список entityIds категории категории categorySearchResult и построить между ними @Relationship.Я просмотрел документацию по Android для пользователя и домашних животных, но не могу правильно связать ее с моими данными, поэтому любой совет будет принят с благодарностью.