gpt4 book ai didi

java - 如何更新 Realm Android 中的子对象

转载 作者:行者123 更新时间:2023-11-30 00:39:53 24 4
gpt4 key购买 nike

我在 android 中使用 realm java,我有一个父类和一个子类,这是我的代码,问题是每次调用这段代码时,都会创建一个新的子对象而不是更新父对象,所以如果我调用它五次,我有 1 个父对象和 5 个子对象,我只需要 1 个父对象和 1 个子对象,有一种方法可以实现这一点

 class Parent extends RealmObject {
@PrimaryKey
private String someKey;
Child child;
}

class Child extends RealmObject {
private int someValue;
}

final Parent parent = realm.where(parent.class).equalTo("somekey", key)
.findFirst();


realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Child child = realm.createObject(Child
.class);
child.setSomeValue(value);

parent.setChild(child);

}
});

最佳答案

我不完全确定为什么每次更新 Parent 时都创建一个 Child 对象,但是如果这个想法是 parent 应该总是有一个 child,那么您可以这样做:

realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
if (parent.getChild() == null) { // Only create a child if it is missing.
Child child = realm.createObject(Child.class);
parent.setChild(child);
}
parent.getChild().setSomeValue(value);
parent.setNotificationConstants(notificationConstants);
}
});

关于java - 如何更新 Realm Android 中的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42705377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com