Некорректное отображение несколько коллекций на экране

Добрый день.

На edit экране есть две коллекции.
Первая является частью EditedEntity (COMPOSITION OneToMany).
Вторая оформлена как отдельный DataContainer со своим запросом
image

Чтобы вторая коллекция загрузилась, контроллер имеет следующий код:
image

При редактировании уже существующей сущности присутствует странное поведение.
Сценарий воспроизведения:

  1. Открываем уже сохраненную сущность, у которой и первая и вторая коллекции имеют данные:
    image

  2. Жмем кнопку Create чтобы добавить новый элемент в первую коллекцию
    image
    Ожидается, что в примере новый элемент встанет четвертым в коллекцию
    Актуальное поведение:
    Новый элемент встает “вместо” всех существующих
    image
    Если сохранить/переоткрыть сущность, то видим что новый элемент сохранился нормально.
    image

Данное поведение наблюдается только когда вторая коллекция имеет элементы.

Я подготовил демо проект.
demo.zip (405.7 КБ)

image

Буду благодарен любым советам как избежать данного поведения.

Похоже проблема в fetchPlan контейнеров. в rootDc вы грузите root вместе с foos. В booDc вы грузите root без foos и видимо в контекст попадает root без foos (тк он загрузился последним) и когда происходит merge состояния. Новый foo добавляется в root из booDc (тот что без коллекции). И по этому получается такое поведение. Если в booDc у fetchPlan убрать root или добавить <property name="foos" fetchPlan="_base"/> то все норм.

Думаю лучше дождаться ответа разработчиков. Мб они заведут issue

2 симпатии

Большое спасибо.
Ваше решение помогло - буду еще ждать ответа разработчиков.

Максим, здравствуйте!

Прошу прощения за поздний ответ и благодарю за подробное описание проблемы и тестовый проект.

Завел тикет, посмотрим, что с этим можно сделать.

В качестве workaround-а решение, предложенное Ярославом, будет наилучшим вариантом.

С уважением,
Дмитрий

1 симпатия