Здравствуйте! Помогите разобраться.
Есть Entity(основная) одним из атрибутов которой является другая Entity(“вложенная”).
Основная  создаётся, редактируется с сохраняется через ScreenEdit. В этот же Screen встроен ScreenFragment “вложенной” Entity. Как реализовать сохранение “вложенной” Entity в БД через Screen основной Entity.
Судя по документации. DataContext фрагмента и экрана ScreenEdit должен быть одним и тем-же и соответственно при сохранении в основоном экране, во фрагменте сущности тоже должны сохраняться. У вас что-то не работает? Мб во фрагменте у сущности нужно добавить provided="true"
Здравствуйте! Да, судя по документации все данные из фрагмента должны сохраняться в БД автоматически при нажатии на кнопку сохранения основного экрана. provided=“true” данная настройка у меня была прописана только в фрагменте, сейчас добавил её в дескриптор экрана и теперь возникает ошибка

этот атрибут я добавляю в инстанс

Так в основной экран эту настройку добавлять не нужно…
Эта настройка означает что вы из основного экрана представляете сущность фрагменту. У вас во фрагменте вообще сущность проставляется? Что там с <data>?
Если это data основного экрана. То какую сущность вы передаете фрагменту?
Если есть возможность то скиньте проект или напишите тестовый.


Первые 2 скриншота это ФРАГМЕНТ, дальше идёт Entity в которую включен фрагмент




Проблема именно в том что при сохранении ApplicationUser( основной entity), в БД не сохраняется экземпляр AppTest( эта entity является атрибутом у основной ApplicationUser)
Идея в том что User может создавать документ(заявку., с атрибутами User и дата создания) так же в этом документе можно выбирать разные “наборы вложенных полей”(определенные как самостоятельная Entity), фрагменты судя по описанию Jmix подходят идеально для решения этой задачи. Видимо я что-то упускаю, раз на экран фрагмента открывается и редактируются поля но эти изменения не сохраняются в БД
Как я вижу в основном экране загрузчик appTestDl связан с сущностью ApplicationUser, а у AppTest загрузчик без id. Во фрагменте вы пишите что  appTestDl связан с сущностью AppTest. Не состыковка получается.
Мне кажется в основном экране нужно использовать InstancePropertyContainer, а во фрагменте убрать упоминание загрузчика.
То есть что-то типа:
В основном экране
<instance id="applicationUserDc" class="...ApplicationUser">
    <instance id="appTestDc" class="...AppTest" property="<Как переменная в классе названа>"/>
    <loader id="applicationUserDl"/>
     ...
</instance>
И во фрагменте без загрузчика
<instance id="appTestDc" class="...AppTest" provided="true"/>
Вот простой пример в котором у меня все работает(Изменения во фрагменте сохраняются).
    <data>
        <instance id="testEntity1Dc"
                  class="com.company.jmix.test.entity.TestEntity1">
            <instance id="testEntity2Dc" property="testEntity2"/>
            <fetchPlan extends="_base">
                <property name="testEntity2" fetchPlan="_base"/>
            </fetchPlan>
            <loader/>
        </instance>
    </data>
    ....
    <layout spacing="true" expand="editActions">
        <form id="form" dataContainer="testEntity1Dc">
            <column width="350px">
                <textField id="nameField" property="name"/>
                <entityPicker id="testEntity2Field" property="testEntity2">
                    <actions>
                        <action id="entityLookup" type="entity_lookup"/>
                        <action id="entityClear" type="entity_clear"/>
                    </actions>
                </entityPicker>
            </column>
        </form>
        <fragment id="testEntity2Fragment" screen="jt_TestEntity2Fragment"/>
        <hbox id="editActions" spacing="true">
            <button id="commitAndCloseBtn" action="windowCommitAndClose"/>
            <button id="closeBtn" action="windowClose"/>
        </hbox>
    </layout>
<fragment xmlns="http://jmix.io/schema/ui/fragment">
    <data>
        <instance id="testEntity2Dc"
                  class="com.company.jmix.test.entity.TestEntity2" provided="true">
            <fetchPlan extends="_base"/>
        </instance>
    </data>
    <layout>
        <form id="form" dataContainer="testEntity2Dc">
            <column width="350px">
                <textField id="nameField" property="name"/>
                <entityPicker id="testEntity3Field" property="testEntity3">
                    <actions>
                        <action id="entityLookup" type="entity_lookup"/>
                        <action id="entityClear" type="entity_clear"/>
                    </actions>
                </entityPicker>
            </column>
        </form>
    </layout>
</fragment>
        Спасибо) сейчас основные моменты у себя проверю и дам ответ
Подскажите, у вас в БД в отдельную таблицу сохраняется testEntity2(Создаваемая и редактируемая как фрагмент основного экрана testEntity1 , UUID (например) которой хранится в таблице testEntity1?
        Да. testEntity2 в отдельной таблице

Здравствуйте
Подскажите пожалуйста по вашему примеру в контроллере экрана как вы указываете наличие фрагмента?
Возможно у меня не сохраняется из-за использования GrooupBoxLayout
Так я просто в дескрипторе главного экрана указал
Сам класс экрана я никак не редактировал.
Здравствуйте, возможно подскажите:
- Как сделать что бы фрагмент располагался сразу после полей включающего(основного) экрана.
2.Как сделать что бы текстовое поле автоматически увеличивалось в размере с заполнением его текстом, и заполнялось с переносами.
 
- может быть в vbox все поместить?
 - в какую сторону увеличивалось? И кто будет переносы вставлять программа или пользователь?
 
Переносы автоматические, при достижении определенного (установленного размера)
1 -я задача решилась помещением всего в vbox, спасибо
Может у Jmix есть решение для такой задачи как исчезающее текстового поля, т.e. на экране отображается слово например: Протокол, и если пользователь кликнет по нему то откроется текстовое.


Может у Jmix есть решение для такой задачи как исчезающее текстового поля…
Есть GroupBoxLayout:
Текст с переносами можно вводить в texArea, а вот автоувеличение и переносы, наверное самому в коде писать.
Окей, спасибо)