На edit экране есть две коллекции.
Первая является частью EditedEntity (COMPOSITION OneToMany).
Вторая оформлена как отдельный DataContainer со своим запросом
Чтобы вторая коллекция загрузилась, контроллер имеет следующий код:
При редактировании уже существующей сущности присутствует странное поведение.
Сценарий воспроизведения:
Открываем уже сохраненную сущность, у которой и первая и вторая коллекции имеют данные:
Жмем кнопку Create чтобы добавить новый элемент в первую коллекцию
Ожидается, что в примере новый элемент встанет четвертым в коллекцию
Актуальное поведение:
Новый элемент встает “вместо” всех существующих
Если сохранить/переоткрыть сущность, то видим что новый элемент сохранился нормально.
Данное поведение наблюдается только когда вторая коллекция имеет элементы.
Похоже проблема в fetchPlan контейнеров. в rootDc вы грузите root вместе с foos. В booDc вы грузите root без foos и видимо в контекст попадает root без foos (тк он загрузился последним) и когда происходит merge состояния. Новый foo добавляется в root из booDc (тот что без коллекции). И по этому получается такое поведение. Если в booDc у fetchPlan убрать root или добавить <property name="foos" fetchPlan="_base"/> то все норм.
Думаю лучше дождаться ответа разработчиков. Мб они заведут issue