【问题标题】:Spring Data Rest specify default order bySpring Data Rest 指定默认顺序
【发布时间】:2017-05-25 11:55:33
【问题描述】:

我是 Spring Data Rest 的新手,看起来我想用它来轻松地将一些现有的数据库表公开为 restful 服务。我设法通过遵循此guide 获得了一个示例。这可行,但默认情况下如何显示按创建日期字段排序的所有行?

我尝试添加一个 findAllByOrderByCreationdateDesc() 方法,该方法通过 REST 接口显示为新的搜索方法,但理想情况下,我希望在显示所有项目时默认执行此操作。

任何指针都会很棒。

【问题讨论】:

    标签: spring-data-rest


    【解决方案1】:

    您可以尝试在您的存储库界面中覆盖findAll() 方法:

    @RepositoryRestResource
    public interface UserRepo extends JpaRepository<User, Long> {
    
        @Override 
        @Query("select u from User u order by u.name asc")
        Page<User> findAll(Pageable pageable);
    }
    

    但在这种情况下,您将失去使用任意排序的能力(例如:/users?sort=name,desc)。 你会有 不必要的搜索资源链接/users/search/findAll{?page,size,sort}

    【讨论】:

    • 感谢这对我有用。不幸的是我不能覆盖排序,但我想我可以有不同的搜索/排序方法。
    【解决方案2】:

    在这种情况下,有一些注释会派上用场。

    但是由于您使用 spring-data-rest 并且您不希望暴露自定义方法,因此这些注释不会有太大帮助。

    对于您的方案,您可以通过自己的自定义存储库覆盖默认存储库行为。查看this官方文档。

    【讨论】:

      猜你喜欢
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-15
      相关资源
      最近更新 更多