【发布时间】:2017-01-21 07:13:21
【问题描述】:
这是我的 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");
}
这里的问题是当我调用这个方法时。提及的字段得到更新,但此方法中未提及的字段变为空或零。
当然,我可以通过调用它们的设置器来设置所有字段的值,但是从我调用此方法的地方,我无法获取所有字段值。
所以,问题是:如何更新我的领域数据库,以使现有字段不会变为空?
附:
我的Realm版本是:0.84.1,
compile 'io.realm:realm-android:0.84.1'
【问题讨论】:
-
不,当我插入值时,日志确定这些值已正确插入
-
顺便说一句,
0.84.1版本超级超级老。 realm.io/docs/java/0.84.1 -
哪个是最新版本?
-
点击我提供的链接。单击大警告消息链接。阅读来自realm.io的最新文档
-
classpath "io.realm:realm-gradle-plugin:${currentVersion}"甚至来自最新下载文件的 gradle 文件,这是指定版本的方式。如何通过这种方式获取最新版本:compile 'io.realm:realm-android:0.84.1'.
标签: java android database realm