これは私のレルムデータベースの構造です:Realmデータベースを更新する正しい方法は?
public class ARDatabase extends RealmObject
{
@PrimaryKey
private String uid;
private String namex;
private String desc;
private boolean isVideo;
private boolean isDeleted;
private String urlImg;
private String urlApp;
private int updates;
private boolean isDownloaded;
private String location;
public ARDatabase(){}
public String getUid()
{
return uid;
}
public void setUid(String uid)
{
this.uid = uid;
}
public String getNamex()
{
return namex;
}
public void setNamex(String namex)
{
this.namex = namex;
}
public String getDesc()
{
return desc;
}
public void setDesc(String desc)
{
this.desc = desc;
}
public boolean getIsVideo()
{
return isVideo;
}
public void setIsVideo(boolean isVideo)
{
this.isVideo = isVideo;
}
public boolean getIsDeleted()
{
return isDeleted;
}
public void setIsDeleted(boolean isDeleted)
{
this.isDeleted = isDeleted;
}
public String getUrlImg()
{
return urlImg;
}
public void setUrlImg(String urlImg)
{
this.urlImg = urlImg;
}
public String getUrlApp()
{
return urlApp;
}
public void setUrlApp(String urlApp)
{
this.urlApp = urlApp;
}
public int getUpdates()
{
return updates;
}
public void setUpdates(int updates)
{
this.updates = updates;
}
public boolean getIsDownloaded()
{
return isDownloaded;
}
public void setIsDownloaded(boolean isDownloaded)
{
this.isDownloaded = isDownloaded;
}
public String getLocation()
{
return location;
}
public void setLocation(String location)
{
this.location = location;
}
}
そして私は、データベースに正常にオブジェクトを追加することができます。
オブジェクトを更新する必要があるときに問題が発生します。
これは私が試したものです:
private void downloadUpdateDatabase(String uid,String location_address) throws RealmException
{
mRealm.beginTransaction();
ARDatabase db = new ARDatabase();
db.setUid(uid);
db.setIsDownloaded(true);
db.setLocation(location_address);
mRealm.copyToRealmOrUpdate(db);
mRealm.commitTransaction();
Log.e("TAG","DOWNLOAD UPDATE COMPLETED");
}
私は、このメソッドを呼び出したときに、ここで問題があります。上記のフィールドは更新されますが、このメソッドでは指定されていないフィールドはnullまたはゼロになります。
もちろん、私はこのメソッドを呼び出す場所から、すべてのフィールド値を取得することはできませんが、それらのセッターを呼び出すことによってすべてのフィールドの値を設定することができます。
したがって、質問はです:既存のフィールドがnullにならないようにレルムデータベースを更新するにはどうすればよいですか?
PS:
マイレルムのバージョンがある:0.84.1、
compile 'io.realm:realm-android:0.84.1'
いいえ、私は値を挿入し、ログが値が正しくところで – OBX
を挿入されていることが特定ます、バージョンがあるはずです'0.84.1'はsuper、super oldです。 https://realm.io/docs/java/0.84.1/ –
最新のバージョンですか? – OBX