【发布时间】:2018-07-16 17:08:33
【问题描述】:
对话类以前有一个名为“消息”的字符串字段。现在这个“消息”字段被删除,我在对话类中添加了一个“RealmList allMessages”而不是旧的“消息”字段。 ChatMessage 类有一个字段名称“messageText”。如何将会话类中的“消息”迁移到列表“allMessages”的“消息文本”?
public class ChatMessage extends RealmObject implements Parcelable {
....
private String messageText;
....
}
旧会话类。
public class Conversation extends RealmObject implements Parcelable{
private String message;
....
}
新的对话课程。
public class Conversation extends RealmObject implements Parcelable{
private RealmList<ChatMessage> allMessages;
}
我试过了。但它不起作用。
if (oldVersion == 6){
RealmObjectSchema messageSchema = schema.create("ChatMessage")
.addField("messageText", String.class);
RealmObjectSchema userChatSchema = schema.get("Conversation");
if (userChatSchema != null) {
userChatSchema.addRealmListField("message_tmp", messageSchema)
.transform(new RealmObjectSchema.Function() {
@Override
public void apply(@NonNull DynamicRealmObject obj) {
String message = obj.getString("message");
RealmList<DynamicRealmObject> valueObj = obj.getList("message_tmp");
//What next?Am i right till this point??
}
})
.removeField("message")
.renameField("message_tmp", "allMessages");
}
}
【问题讨论】:
标签: realm realm-mobile-platform realm-list realm-migration