Проблема разрыва связей ManyToMany между сущностями

Добрый день!

Столкнулся с проблемой разрыва связей ManyToMany между сущностями.

Описание системы:
jmix 1.4.4
В системе есть сущности: А, Б, В.
Связи между ними:

  • АOneToManyБ
  • АManyToManyБ
  • АManyToManyВ
  • БManyToManyВ

Для каждого класса существуют связанные экраны редактирования. На формах есть возможность открывать связанные элементы, при этом передаётся родительский контекст.

Воспроизведение проблемы:

Пользователь выполняет следующую последовательность действий:

  1. Открывает форму редактирования для А.
  2. На форме А открывает на редактирование сущность Б.
  3. На форме Б связывает сущность В.
  4. Завершает работу с формой — коммит в родительский контекст с сохранением данных.
  5. Открывает формы: АБВ.
  6. На форме В изменяет одно из полей (например, текстовое поле name).
  7. Последовательно закрывает формы с сохранением данных.
  8. Открывает формы АБ — на форме Б в таблице отсутствует ранее добавленная связь с В.

Результат: Изменение В привело к утрате связи с Б.

Анализ проблемы:

При отладке выяснилось, что при открытии формы В не загружается множественная связь, она явно не указана в плане загрузки экрана, но при обработке запроса попадает в FetchGroup поэтому подвергается обработке в стандартном режиме (загрузка и установка значения). Связь теряется при вложенности более 3 экранов, но при просмотре в режиме отладки значение устанавливается.

Примечание: Если открыть экраны БВ напрямую — всё работает корректно, значение связи подтягивается, разрыв не осуществляется.

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

Решение:

Решил проблему явным указанием множественных связей в плане загрузки перед загрузкой данных на экран.

Вопрос:
Сталкивался ли кто-то с подобным поведением? Есть ли рекомендации по работе с такими сценариями?