У меня есть приложение на производстве, поэтому изменения должны быть применены с RealmMigration
Я посмотрел документацию и этот пример , но не нашел, каквыполните следующие действия.
В текущей версии у меня есть элементы типа Foo
, у которых есть свойство boolean
с именем favorite
.Теперь я хочу обобщить это и создать пользовательские пользовательские списки Foo
, чтобы пользователи могли создавать свои пользовательские списки и добавлять столько объектов, сколько они хотят.Я хочу реализовать это с помощью нового класса UserFooList
с элементами name
и RealmList<Foo>
элементов.
В процессе миграции я создаю этот новый класс с его полями.
Это просто, но тут возникает сложная часть:
Я хочу добавить все предыдущие Foo
элементы, отмеченные favorite
, к новому UserFooList
, а затем удалить неиспользуемые Foo
.поле favorite
Некоторые коды, которые помогут уточнить:
Текущий класс
public class Foo extends RealmObject{
private String title;
private boolean favorite;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public boolean isFavorite() {
return favorite;
}
public void setFavorite(boolean favorite) {
this.favorite = favorite;
}
}
Измененный класс
public class Foo extends RealmObject{
//favorite field will be removed
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
Новый класс
public class UserFooList extends RealmObject{
private String name;
private RealmList<Foo> items;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public RealmList<Foo> getItems() {
return items;
}
public void setItems(RealmList<Foo> items) {
this.items = items;
}
}
Я хочу вставить экземпляр UserFooList
и заполнить его:
name
: «избранное» items
: все существующие Foo
экземпляры с favorite == true
И я хочу сделать это во время миграции, потому что таким образом я будуиметь возможность удалить поле favorite
после вставки всех элементов в новый созданный список.