Ссылочный атрибут не загружается в UI под глобальным администратором если тенанты основной и дочерней сущности разные или NULL

Есть две две тенантозависимые сущности: User и Department.
User имеет ссылочный атрибут userDepartment (многие к одному).
Атрибут userDepartment добавлен на экран редактирования User.

Если под глобальным администратором создать сущность User, не заполнить атрибут tenent и заполнить userDepartment экземпляром , у которого тоже не заполнен tenent, то после сохранения сущности User и повторного открытия экрана редактирования - атрибут не отобразится в UI для глобального админа.
В entityToEdit он тоже не загружается.
Атрибут user.userDepartment так же не отобразится на экране броуз.

Если user.tenant и user.userDepartment.tenant не совпадают - ситуация в UI будет аналогичная.
user.userDepartment подтягивается в UI только если user.tenant и user.userDepartment.tenant совпадают и не равны NULL.

На экране редактирования в инспекторе сущностей атрибут user.userDepartment всегда отображается корректно.

Симптомы 1 в 1 как в этой проблеме с Отчетами с аддоном Multitenantcy: Атрибут Группа не отображается в UI

Приложил тестовый пример на Jmix 1.1.3.
На предыдущей версии все аналогично.

У пользователя u1 тенант совпадает с тенантом ссылочного атрибута userDep - видим его на броузе и на экране редактирования.
У u2 тенанты разные, а в u3 и его ссылочном атрибуте userDep тенанты не заполнены.
image
image
И userDep этого же пользователя нормально отображается на экране редактирования в Инспекторе
image
Все это под глобальным админом.

adduserprop.zip (92.0 КБ)

Очень похоже на баг Multitenantcy.

Через неделю у нас “вынос” клиенту предварительного релиза первого приложения на Jmix - буду очень благодарен за совет по обходу проблемы. @krivopustov @e.reznikova

Спасибо за подробное описание и тестовый проект. Завели тикет: https://github.com/Haulmont/jmix-multitenancy/issues/22, смотрим.

Быстрый workaround - добавить fetchMode = UNDEFINED для ссылочного свойства в фетч-планы, например:

<instance id="userDc"
          class="com.company.adduserprop.entity.User">
    <fetchPlan extends="_base">
        <property name="userDep" fetch="UNDEFINED">
            <property name="name"/>
            <property name="tenant"/>
        </property>
    </fetchPlan>
    <loader/>
</instance>
1 симпатия

Благодарю, это помогло!