【发布时间】:2018-05-31 14:58:22
【问题描述】:
我有一个正在生产的应用,因此必须使用 RealmMigration 应用更改
我查看了文档和example,但没有找到以下操作。
在当前版本中,我有 Foo 类型的项目,它具有一个名为 favorite 的 boolean 属性。
现在我想概括一下并创建用户自定义Foo 列表,这样用户就可以创建他们的自定义列表并添加任意数量的对象。
我想用一个名为UserFooList 的新类来实现这一点,它基本上包含name 和RealmList<Foo>of 元素。
在迁移过程中,我正在使用它的字段创建这个新类。
这很容易,但困难的部分来了:
我想将所有以前标记为favorite 的Foo 项目添加到新的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 字段。
【问题讨论】:
-
如果你添加你想要的以前的模型和新的模型,我就能知道你想给你的字段取什么名字
-
@EpicPandaForce 感谢您的评论,我编辑了我的答案,试图用一些示例代码更好地解释它。
标签: android realm realm-migration