treeDataGrid с фильтром

Есть сущность

@JmixEntity
@Table(name = "JT_TEST_ENTITY", indexes = {
        @Index(name = "IDX_JT_TEST_ENTITY_PARENT", columnList = "PARENT_ID")
})
@Entity(name = "jt_TestEntity")
public class TestEntity {

    @JmixGeneratedValue
    @Column(name = "ID", nullable = false)
    @Id
    private UUID id;

    @InstanceName
    @Column(name = "NAME")
    private String name;

    @Column(name = "ACTIVE")
    private Boolean active;

    @JoinColumn(name = "PARENT_ID")
    @ManyToOne(fetch = FetchType.LAZY)
    private TestEntity parent;
...

}

Таблица с фильтром :

<genericFilter id="genericFilter"
                       dataLoader="testEntitiesDl">
            <properties include=".*"/>
        </genericFilter>
 <treeDataGrid id="testEntitiesDataGrid"
                      width="100%"
                      minHeight="20em"
                      dataContainer="testEntitiesDc"
                      hierarchyProperty="parent"
                      columnReorderingAllowed="true">
            <actions>
                <action id="createAction" type="list_create"/>
                <action id="editAction" type="list_edit"/>
                <action id="removeAction" type="list_remove"/>
            </actions>
            <columns resizable="true">
                <column property="name"/>
                <column property="active"/>
                <column property="parent"/>
            </columns>
        </treeDataGrid>

Сделал структуру

image

Теперь если отфильтровать по name = child
То таблица не отображает записи. Хотя simplePagination пишет что 1 запись есть
image

DataManager так-же ее грузит.
image

Версия jmix 2.5.1.

Привет

Да, это выглядит как баг, оно воспроизводится, но это не просто баг. Это сайд-эффект работы TreeGrid.
У нас получается что загрузился Child(parent != null) и при этом самого парента нету в гриде и ваадин не знает, куда определить такую сущность. Пока могу предолжить только обходной путь ввиде зануления значений в loadDelegate если у сущности есть парент но при этом самого парента в результате запроса нету.

Завел задачу в гитхабе

Пока еще ее не обсуждали, будем ли фиксить, тк это ожидаемое поведение, если что следите за задачей, там отпишем результат. Спасибо что подсветили!

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

Привет еще раз, возвращаюсь с деталями.

Команда считает это ожидаемым поведением и сайд-эффектом когда используется фильтр. Фикситься не будет, потому что одни хотят чтобы дети у родителя при отсутствии родителя становились предками несмотря на то что у них в пропретях (А я надпоминяю пропертя иерархичная) есть проедок. Другие хотят полностью исключать из дерева и лоадера как родителя так и дочерних элементов (например доступ к подпапкам в файловой системе если нету доступа).

Потому никаких фиксов не будет чтобы не было неожиданного поведения.

Вместо этого мы в будущем создадим пример как делать Дочерние элементы предками в случае если это нужно. Вот завел задачу в сэмплах, в будущем добавим этот пример в ui samples

1 симпатия