Ошибка при вызове imapAPI.fetchMessage(imapMessage)

Здравствуйте,
Я получаю из БД объекты ImapMessage для дальнейшей работы.
При попытке вызова imapAPI.fetchMessage(imapMessage) возникает ошибка:
“Cannot get unfetched attribute [folder] from detached object com.haulmont.addon.imap.entity.ImapMessage-3f6de5cb-4bc1-1ba3-1074-ecc6965ef824 [detached].”
Если этот метод использовать при обработке NewEmailImapEvent ошибки не возникает.
Есть ли какое-то решение?

Здравствуйте @osadchaya.alisa,

Добавьте пожалуйста в эту ветку пример вашего кода, где падает эта ошибка

Для получение списка объектов ImapMessage используется метод:

public List<ImapMessage> getMessagesByDate(Calendar dateFrom, Calendar dateTo) {
    if (dateFrom == null) {
        dateFrom = Calendar.getInstance();
        dateFrom.add(Calendar.DATE, -1);
    }
    if (dateTo == null) {
        dateTo = Calendar.getInstance();
    }
    List<ImapMessage> messageList = new ArrayList<>();
    List<ImapFolder> imapFolders = getFolders(getMailBoxes());
    for (ImapFolder imapFolder : imapFolders) {
        messageList.addAll(manager.load(ImapMessage.class)
                .query("select m from imap$Message m where m.folder.id = :imapFolderId and m.receivedDate between :dateFrom and :dateTo")
                .parameter("imapFolderId", imapFolder.getId())
                .parameter("dateFrom", dateFrom.getTime())
                .parameter("dateTo", dateTo.getTime())
                .list());
    }
    return messageList;
}

Далее этот список передается в метод, где падает ошибка:

public void parseMail(List<ImapMessage> imapMessages, ImapAPI imapAPI, ImapAttachmentsAPI imapAttachmentsAPI) {
    for (ImapMessage m : imapMessages) {
        ImapMessageDto dtoMessage = imapAPI.fetchMessage(m);
        imapAttachmentsAPI.fetchAttachments(m);
    }
}

Попробуйте добавить в этот метод view для imap$Message чтобы объекты грузились вместе с полем folder

Спасибо!
Работает