【发布时间】:2017-08-23 22:19:50
【问题描述】:
Pojo Class:
public class ChannelResponse extends RealmObject{
private RealmList<TvChannel> tv_channel;
}
public class TvChannel extends RealmObject{
@PrimaryKey
private String id;
private String stream_display_name;
private String stream_icon;
private String streaming_url;
private int isFavorite;
}
这里 isFavorite 是 int,当我从 API channelResponse 和 api json 对象 TvChannel 中获取时更新其他字段时不应该更新它有 isFavorite feild。
我是这样更新的:
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealmOrUpdate(channelResponse);
realm.commitTransaction();
realm.close();
【问题讨论】:
-
查询对象是否存在,将其
isFavorite保存到布尔变量中,例如copyToRealmOrUpdate()并设置您保存在copyToRealmOrUpdate()返回的代理上的isFavorite值? -
您不能使用
copyToRealmOrUpdate部分更新对象。按照建议,您可以查询它,然后更新您想要的任何字段。如果您仍然想使用copyToRealmOrUpdate,那么您需要重新设计您的模型以分离isFavorite的概念。例如,您可以让 POJO 仅定义电视频道,并为包含每个用户的首选频道列表的类建模。这样,您就可以将更新频道详细信息的关注与用户建立他最喜欢的列表分开
标签: android realm insert-update