IllegalStateException: Cannot get unfetched attribute [name] from detached object

Коллеги, добрый день!
Подскажите, пожалуйста, как избавится от этой ошибки “IllegalStateException: Cannot get unfetched attribute [name] from detached object”?
Пример проекта:
IllegalStateException.zip (96.1 КБ)

Описание проблемы:
В слушателе события EntitySavingEvent создается другая ссылочная сущность и добавляется в поле создаваемой:

    @EventListener
    public void onNewEntitySaving(EntitySavingEvent<NewEntity> event) {
        NewEntity entity = event.getEntity();
        NewEntityRef entityRef = dataManager.create(NewEntityRef.class);
        entityRef.setName("test-" + System.currentTimeMillis());
        dataManager.save(entityRef);
        entity.setMyRef(entityRef);
    }

Ошибка возникает при добавлении сущности NewEntity через gui, т.е. при нажатии Ок в диалоге редактирования сущности.
Я так понимаю, надо как-то перезагрузить созданную сущность в dataset.

1 симпатия

Олег,
Спасибо за сообщение о проблеме и за тестовый проект.
Создан тикет:

Обходной путь - надо создать commitDelegate и в нем добавить актуальный fetchPlan для редактируемой сущности:

@Install(target = Target.DATA_CONTEXT)
private Set<Object> commitDelegate(SaveContext saveContext) {
    saveContext.getFetchPlans().put(getEditedEntity(), getEditedEntityContainer().getFetchPlan());
    return dataManager.save(saveContext);
}

С уважением,
Константин

2 симпатии