【问题标题】:RealmList addAll duplicating object with same primary keyRealmList addAll 具有相同主键的重复对象
【发布时间】:2017-10-06 13:03:25
【问题描述】:

我在领域列表中插入对象时遇到问题。它在 Realm 中复制我的对象,并且它们具有相同的主键。

class ParentObj extends RealmObject {
   RealmList<SomeObject> objects;
}

class SomeObject extends RealmObject {
   @PrimaryKey
   @Required
   String id;
   ...
}

当我得到SomeObject 的列表时:

List<SomeObject> objs = ...;
User.getObjects().addAll(objs);

我的 RealmList (objects) 被复制。我已经确定它是相同的主键。 有人知道发生了什么吗?
谢谢!

【问题讨论】:

    标签: android realm realm-list realm-java


    【解决方案1】:

    RealmList 就像ArrayList 一样工作,所以同一个项目可以多次出现。如果你想更新SomeObject,你应该直接这样做。 objects RealmList 将反映这些变化。

    目前尚不清楚您要做什么,因此根据给定的信息很难给出更多建议。

    【讨论】:

    • 我在我的网络服务中获取所有对象并更新我的本地对象,将其插入到我的领域列表中。我希望这样做时不要复制它们。否则,我必须始终搜索我的对象并在每次进行 Web 服务调用时更新它们中的每一个。
    • 你不需要操作objects数组来更新SomeObject,直接搜索更新SomeObject即可。更改将反映在objects 数组中。
    • 如果我理解正确,我可以在objs 列表中执行 Realm.copyToRealmOrUpdate,更改将反映在我的objects 中。对吗?
    • 是的,没错。它与使用纯 Java 层次结构的思维模型相同,其中具有主键意味着它是一个单例对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多