Я не могу понять, почему Realm не создает все таблицы при первом запуске моего приложения для Android.При запуске приложения создаются только 2 из 6 таблиц.Я следовал документации, что все классы моделей должны расширять класс RealmObject.Я использую последнюю версию Realm (5.7.0).
Вот один из моих классов, которые не добавлены в схему области:
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успешно, и область не выдает исключение при вызове транзакций записи.Я попытался запустить миграцию, но это не помогло.В чем может быть проблема с классами, не подобранными царством?
Спасибо