在Cuba Framework中对嵌套的collectionDatasource进行排序

Mat*_*ann 2 jpql vaadin cuba-platform

我有一本书数据源.一本书有很多作者.该集合显示在book-edit-view的网格中.现在我想按作者姓名排序.在collectionDatasource属性中,我将sortable设置为true.我该怎么做?

Igo*_*kov 7

如果我理解正确,您使用嵌套数据源绑定表和书籍作者,如下所示:

    <datasource id="bookDs"
                class="com.company.test.entity.Book"
                view="book-edit-view">
        <collectionDatasource id="authorsDs" property="authors"/>
    </datasource>
Run Code Online (Sandbox Code Playgroud)

如果是这样,首先,确保Book实体具有有序类型(ListLinkedHashSet)的Authors属性集合.如果不是,您可以在Studio中更改集合类型或在Book实体中手动更改.

然后表列变为可排序 - 当用户单击列标题表时,将相应地对行进行排序.此外,CUBA平台将处理保存排序设置作为用户设置 - 因此下次用户打开屏幕表时将进行排序.

默认情况下,为了能够对Book Authors进行排序,您可以在ORM级别上进行排序.在Studio中打开实体书,点击属性作者和设定值的名字按订单的属性属性面板领域.这将确保Book实体的任何实例都具有按名称排序的作者.