Удалить первичный ключ в модели Android класса Realm - PullRequest
0 голосов
/ 09 мая 2018

У меня есть класс модели с именем Post пакет 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;
}
}

ранее я использовал @primaryKey в id. Но теперь я не хочу использовать этот первичный ключ, поэтому я хочу переутомить его. Я удалил ключевое слово @primarykey, как вы можете видеть выше, но когда я пытаюсь запустить свое приложение, оно говорит .... У «Post» есть первичный ключ, вместо этого используйте «createObject (Class, Object)». Кто-нибудь, пожалуйста, скажите мне, как я могу решить эту проблему? Как я могу полностью удалить первичный ключ из моего модельного класса?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вам необходимо добавить Миграцию для ваших моделей Realm.

Это необходимо делать всякий раз, когда вы добавляете / удаляете поле или добавляете / удаляете аннотации Realm к полю (например, @PrimaryKey или @Required или другие)

Таким образом вы сохраняете все свои данные, а просто меняете все уже сохраненные данные

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

0 голосов
/ 09 мая 2018

Удалите приложение и запустите его или перенесите базу данных в новую версию. Но не рекомендуется хранить класс модели / сущности без PrimaryKey

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...