Как обновить RealmObject в свойствах RealmObject?

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);
    }
}

Есть ли способ обновить состояние через прямое вложение?

1 ответ

Решение

Um.

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);
        }
    });
}
Другие вопросы по тегам