vaadin - 在 Cuba 框架中对嵌套的 collectionDatasource 进行排序

标签 vaadin jpql cuba-platform

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

最佳答案

如果我理解正确,您正在使用 绑定(bind)表格和书籍作者。嵌套数据源 , 像那样:

    <datasource id="bookDs"
                class="com.company.test.entity.Book"
                view="book-edit-view">
        <collectionDatasource id="authorsDs" property="authors"/>
    </datasource>

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

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

为了在默认情况下启用图书作者排序,您可以在 ORM 级别进行。在 Studio 打开实体 Book 中,点击 authors 属性并设置值 姓名 通过 订购属性属性面板中的字段。这将确保 Book 实体的任何实例都具有按名称排序的作者。

关于vaadin - 在 Cuba 框架中对嵌套的 collectionDatasource 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37340003/

相关文章:

css - Vaadin MenuItem.setStyleName 不起作用

java - 垂直布局 Vaadin 中的按钮不可点击?

java - 添加 googlemaps vaadin 库后 Vaadin 不编译 Widgetset

java - jpql查询: Having problems with case conditions when comparing nullable fields

grid - 如何在 Grid Vaadin 8 中使用 setSortOrderProvider?

java - jpql (JPA) 中重复的父子数据

java - 我不明白为什么 Hibernate 创建一个带有两个连接的查询

cuba-platform - 抑制古巴平台中未保存的更改消息

java - CUBA 平台 - 如何自定义前端 Web 应用程序屏幕?

java - 使用 POST 方法中的 ftl 显示列表