2017-11-01 12 views
0

Springデータ残りの使用投影を使用して表現を微調整することもできますし、中間にDTOを入れることもできますが... Pageableを使用して並べ替えパラメータに間接参照を導入できますか?Pageableのカスタム並べ替えパラメータpage

私は、Spring Data Restを使用している間に、公開されているAPIレストとデータベースモデルエンティティのフィールド名との距離をどの程度縮めることができるか考えています。 `と

@RepositoryRestResource 
public interface MyEntityRepo extends JpaRepository<MyEntity, Long> { 

    @Override 
    default Page<Listing> findAll(Pageable p) { 
     if (p.getSort() == null) { 

      // Default sort order 
      return findAllBy(new PageRequest(p.getPageNumber(), p.getPageSize(), Sort.Direction.DESC, "myProperty")); 
     } 
     return findAllBy(p); 
    } 

    @RestResource(exported = false) 
    Page<Listing> findAllBy(Pageable pageable); 
} 
+0

ソート= myPropertyに、desc' [リンク](HTTPS://ドキュメント – Cepr0

+0

申し訳ありません、多分私は自分自身を説明しませんでした。これは、POJOフィールド名が変更されてもエンティティが変更された場合でもクライアントがURLを変更しなくても不変のAPIを持つことに関するものです。これはソートパラメータでmyPropertyを使用しない方法です。 – Rafael

+0

私の更新された回答を参照してください.. – Cepr0

答えて

1

では、次のトリックを使用することができ、あなたのリポジトリのページング findAll方法では、デフォルトのソート順を設定します。 spring.io/spring-data/rest/docs/current/reference/html/#paging-and-sorting.sorting)
+0

デフォルトの並べ替えだけを検討しているわけではないので、私が探していたものではありません...しかし、これは私が考えていない面白いアプローチです。ありがとう!私は各コントローラまたはリポジトリによって定義されたマッピングを使用してソートパラメータを置き換えるメカニズムを作成しようとしています。 – Rafael

関連する問題