【发布时间】:2018-07-15 12:21:54
【问题描述】:
我正在尝试通过实现一个简单的 Android 项目来学习 Realm 基础知识。
这个想法是用户有几个项目和几个项目列表,一个项目可以添加到这些列表中的任何一个,一个列表可以有很多项目。因此,Item 和List 对象之间存在多对多关系。这是我的对象。
public class Item extends RealmObject {
@PrimaryKey
private String id;
private String name;
private boolean isDone;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isDone() {
return isDone;
}
public void setDone(boolean done) {
isCollected = done;
}
}
public class List extends RealmObject {
@PrimaryKey
private String id;
private String name;
private RealmList<Item> items;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public RealmList<Item> getItems() {
return items;
}
public void setItems(RealmList<Item> items) {
this.items = items;
}
}
我的问题是,isDone 字段可能会有所不同,具体取决于给定列表中项目的状态。但是,当我在列表中更新此字段时,添加到不同列表中的所有其他项目也会更新。因为他们使用的是同一个对象,所以这是有道理的,但这不是我想要的行为。是否有一种 Realm 方法可以创建带有额外列/字段的数据透视表/对象(在这种情况下为 isDone)?
任何帮助将不胜感激。
【问题讨论】:
-
But when I update this field in a list, all the other items added to different lists get updated too.什么意思?显示代码 -
假设有一个 Item 对象,我在不同的列表中使用它。当我更改此对象的 isDone 字段时,它也会在其他列表中更改。
标签: java android realm many-to-many object-oriented-database