首页 > 解决方案 > 在列表中,设置 jhipster 中的默认排序列

问题描述

很抱歉这个简单的问题,但我对 spring、JPA 和 Jhipster 都是新手。我正在关注视频教程,并且在一个步骤中,老师“自定义”了默认视图以对自定义列进行排序。他通过将存储库类中的方法更改为按其中一列排序的查询来做到这一点。这可行,但我注意到这样做 UI 排序(UI 强加于单击列的排序)停止工作。

调试我注意到原因是查询首先按日期过滤,然后按“可分页”过滤。如果可分页为空,将“按日期”排序作为默认值应用的最佳做法是什么?

我设法通过深入检查页面对象和“如果有 UI 排序使用存储库方法 A(本机未排序的方法),如果没有使用存储库方法 B(即已经排序)”。我正在寻找的是“正确的方式”,最佳实践,因为我想学习按照它应该的方式编程,而且我很确定拥有一个默认的排序列并不是那么奇特要求

这是视频的链接

非常感谢

标签: spring-data-jpajhipster

解决方案


您可以在 中设置任何视图的默认排序列[component-name].route.ts。在该文件中,您将看到如下内容:

// ...
export const fooRoute: Routes = [
  {
    path: '',
    component: FooComponent,
    resolve: {
      pagingParams: JhiResolvePagingParams
    },
    data: {
      authorities: ['ROLE_USER'],
      defaultSort: 'id,asc',      // <- Look at this line :)
      pageTitle: 'jhipsterApp.foo.home.title'
    },
    canActivate: [UserRouteAccessService]
  },
  // ...

JHipster 设置的默认顺序是按列id升序排列。如果要按列name降序设置默认顺序(仅作为示例),只需将该行更改为以下内容:

      defaultSort: 'name,desc',

推荐阅读