如何更新 RealmObject 属性中的 RealmObject?

How to update RealmObject inside RealmObject properties?

Message extends RealmObject{
Attachment attachment;
}

Attachment extends RealmObject{
int state;
}

我想更新附件中的状态。我遵循了这样的路径:

RealmResults<Message> allMessages = mRealm.where(Message.class)
                .isNotNull("attachment")
                .in("attachment.state", new Integer[]{INTERRUPTED,PENDING})
                .findAll();

if (allMessages != null && allMessages.size() > 0) {
    for (Message message : allMessages) {
        Attachment attachment = message.getAttachment();
        attachment.setState(IDLE);
    }
}

有没有办法通过直接附件更新状态?

一个。

try(Realm r = Realm.getDefaultInstance()) {
    r.executeTransaction((realm) -> {
        RealmResults<Attachment> attachments = realm.where(Attachment.class)
           .in("state", new Integer[]{INTERRUPTED,PENDING})
           .findAll();
        for(Attachment attachment: attachments) {
            attachment.setState(IDLE);
        }
    });
}