java - 为什么与 RealmObject 相关的 RealmList 不更新?

标签 java android realm realm-list

我有一些具有这种结构的 Realm 数据:

public class Member extends RealmObject {

@PrimaryKey
private int id;
private String name;
private String image_url;
}

public class Department extends RealmObject {

@PrimaryKey
private int id;
// some another fields...
private RealmList<Member> members;
}

public class Meeting extends RealmObject {

@PrimaryKey
private int id;
private String title = "";
private RealmList<Member> members = new RealmList<>();
}

我想从部门中选择一些成员并添加到选定的 session 中。

//properties
int departmentId = 1;
int meetingId = 4;
Meeting meeting;
Department department;
Realm realm;

//declaration
realm = Realm.getDefaultInstance();
realm.beginTransaction();
meeting = realm.where(Meeting.class).equalTo("id", meetingId).findFirst();

department = realm.where(Department.class).equalTo("id", departmentId).findFirst();

//add members
for (Member member : department.getMembers()) {
    if (!thereIsInList(member,meeting.getMembers()))
        meeting.getMembers().add(member);
}

//realm update and close
realm.insertOrUpdate(meeting);
realm.commitTransaction();
realm.close();

下一个java代码:

public boolean thereIsInList(Member member, List<Member> mList) {
    if (mList == null) return false;
    for (Member m : mList) {
        if (m.getId() == member.getId()) return true;
    }
    return false;
}

但我看到新成员与 session 无关。 请帮我找出问题所在?

最佳答案

首先在 realm studio 中检查您要查找的 ID 是否正确,并且您需要的列表存在于 realm 中,并引用了各自的 ID。下面的 fragment 处理真实的交易

    Realm realmObj;

    //declaration
    realmObj= Realm.getDefaultInstance();

realmObj.executeTransaction(realm -> {
    meeting = realm.where(Meeting.class).equalTo("id", meetingId).findFirst();

    department = realm.where(Department.class).equalTo("id", departmentId).findFirst();

    //add members
    for (Member member : department.getMembers()) {
        if (!thereIsInList(member,meeting.getMembers()))
            meeting.getMembers().add(member);
    }

  });

关于java - 为什么与 RealmObject 相关的 RealmList 不更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58806290/

相关文章:

react-native - Realm Javascript 是否支持 Join、Group By 和 Aggregation 功能

swift - 对象映射器 + Realm + Alamofire

java - 在Java中,为什么参数化类型的构造函数的无类型调用会引起编译器警告?

Android - 如何从 Firebase 解锁您的 IP 地址?

java - 从android中的url加载图像时发生类转换异常

javascript - signinwithphonenumber 身份验证失败

来自链接文件夹的 Android Assets

ios - 在 Realm 中查询

java - JSF 添加到列表中的 selectOneMenu<School>

java - 如何获取两个日期之间的通话记录数据和日期之间的来电和去电总数