删除android模型类Realm中的主键

时间:2018-05-09 16:36:51

标签: android realm

我有一个名为Post的模型类     package com.example.sudeepbajracharya.assignment.entity;

import com.google.gson.annotations.SerializedName;

import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;


public class Post extends RealmObject {
@SerializedName("userId")
private int userId;
@SerializedName("id")
private int id;
@SerializedName("title")
private String title;
@SerializedName("body")
private String body;


public void setUserId(int userId) {
    this.userId = userId;
}

public void setId(int id) {
    this.id = id;
}

public void setTitle(String title) {
    this.title = title;
}

public void setBody(String body) {
    this.body = body;
}



public int getUserId() {

    return userId;
}

public int getId() {
    return id;
}

public String getTitle() {
    return title;
}

public String getBody() {
    return body;
}
}

之前我在id中使用过@primaryKey。但现在我不想使用这个主键,所以我想重新给它。我删除了关键字@primarykey,如上所示,但是当我尝试运行我的应用程序时,它会说....' Post'有一个主键,使用' createObject(Class,Object)'代替。请问有谁能告诉我如何解决这个问题?如何从模型类中完成删除主键?

1 个答案:

答案 0 :(得分:0)

您需要为Realm模型添加迁移。

每当您添加/删除字段,或向字段添加/删除Realm注释(例如@PrimaryKey或@Required或其他)时,都需要执行此操作

这样您就可以保留所有数据,只需更改所有已保存的数据

https://realm.io/docs/java/latest/#migrations