Android: область не создает все таблицы при первом запуске - PullRequest
0 голосов
/ 28 октября 2018

Я не могу понять, почему Realm не создает все таблицы при первом запуске моего приложения для Android.При запуске приложения создаются только 2 из 6 таблиц.Я следовал документации, что все классы моделей должны расширять класс RealmObject.Я использую последнюю версию Realm (5.7.0).

enter image description here

Вот один из моих классов, которые не добавлены в схему области:

public class Category extends RealmObject implements Parcelable {

@PrimaryKey
@SerializedName("categoryID")
private int categoryID;
@SerializedName("name")
private String name;
@SerializedName("dateAdded")
private String dateAdded;
@SerializedName("isDeleted")
private int isDeleted;

public Category(int categoryID, String name, String dateAdded, int isDeleted) {
    this.categoryID = categoryID;
    this.name = name;
    this.dateAdded = dateAdded;
    this.isDeleted = isDeleted;
}
public Category() { }

protected Category(Parcel in) {
    categoryID = in.readInt();
    name = in.readString();
    dateAdded = in.readString();
    isDeleted = in.readInt();
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(categoryID);
    dest.writeString(name);
    dest.writeString(dateAdded);
    dest.writeInt(isDeleted);
}

@Override
public int describeContents() {
    return 0;
}

public static final Creator<Category> CREATOR = new Creator<Category>() {
    @Override
    public Category createFromParcel(Parcel in) {
        return new Category(in);
    }

    @Override
    public Category[] newArray(int size) {
        return new Category[size];
    }
};

public int getCategoryID() {
    return categoryID;
}

public void setCategoryID(int categoryID) {
    this.categoryID = categoryID;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getDateAdded() {
    return dateAdded;
}

public void setDateAdded(String dateAdded) {
    this.dateAdded = dateAdded;
}

public int getIsDeleted() {
    return isDeleted;
}

public void setIsDeleted(int isDeleted) {
    this.isDeleted = isDeleted;
}

}

Вот класс, который область добавляет к схеме:

public class ClientInfo extends RealmObject implements Parcelable {

@PrimaryKey
@SerializedName("clientInfoID")
private int clientInfoID;
@SerializedName("platform")
private String platform;
@SerializedName("dateAdded")
private String dateAdded;
@SerializedName("description")
private String description;
@SerializedName("codeName")
private String codeName;
@SerializedName("versionNumber")
private double versionNumber;
@SerializedName("status")
private String status;
@SerializedName("isDeleted")
private int isDeleted;

public ClientInfo() {

}

protected ClientInfo(Parcel in) {
    clientInfoID = in.readInt();
    platform = in.readString();
    dateAdded = in.readString();
    description = in.readString();
    codeName = in.readString();
    versionNumber = in.readDouble();
    status = in.readString();
    isDeleted = in.readInt();
}

public static final Creator<ClientInfo> CREATOR = new Creator<ClientInfo>() {
    @Override
    public ClientInfo createFromParcel(Parcel in) {
        return new ClientInfo(in);
    }

    @Override
    public ClientInfo[] newArray(int size) {
        return new ClientInfo[size];
    }
};

public int getClientInfoID() {
    return clientInfoID;
}

public void setClientInfoID(int clientInfoID) {
    this.clientInfoID = clientInfoID;
}

public String getPlatform() {
    return platform;
}

public void setPlatform(String platform) {
    this.platform = platform;
}

public String getDateAdded() {
    return dateAdded;
}

public void setDateAdded(String dateAdded) {
    this.dateAdded = dateAdded;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getCodeName() {
    return codeName;
}

public void setCodeName(String codeName) {
    this.codeName = codeName;
}

public double getVersionNumber() {
    return versionNumber;
}

public void setVersionNumber(double versionNumber) {
    this.versionNumber = versionNumber;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public int getIsDeleted() {
    return isDeleted;
}

public void setIsDeleted(int isDeleted) {
    this.isDeleted = isDeleted;
}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(clientInfoID);
    dest.writeString(platform);
    dest.writeString(dateAdded);
    dest.writeString(description);
    dest.writeString(codeName);
    dest.writeDouble(versionNumber);
    dest.writeString(status);
    dest.writeInt(isDeleted);
}

}

Я использую JobIntentService для извлечения данных из моего Web API ... все вызовы APIуспешно, и область не выдает исключение при вызове транзакций записи.Я попытался запустить миграцию, но это не помогло.В чем может быть проблема с классами, не подобранными царством?

Спасибо

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