2012-05-10 7 views
63

私のプロジェクトでSpring data JPAを試しています。私はSortPageableの両方で、データを照会するためのすぐに使えるAPIがあるかどうかを知りたいと思います。もちろん、私は自分自身でその方法を書くことができることを知っています。ただのものがあるかどうかを知りたいだけです。私のDAOはJpaRepositoryを拡張し、私は私が呼び出すことができ、以下の方法がありますが見つかりました:SpringデータJPAを使用して、SortとPageableの両方でデータを照会する方法は?

findAll(); 
findAll(Pageable pageable); 
findAll(Sort sort); 

は、しかし、そのような方法がfindAll(Sort sort, Pageable pageable)として存在しないので、私は好奇心旺盛です。

答えて

134

これを達成するための2つの方法があります。

final PageRequest page1 = new PageRequest(
    0, 20, Direction.ASC, "lastName", "salary" 
); 

final PageRequest page2 = new PageRequest(
    0, 20, new Sort(
    new Order(Direction.ASC, "lastName"), 
    new Order(Direction.DESC, "salary") 
) 
); 

dao.findAll(page1); 

あなたはそれがすべてのプロパティ(lastName ASC, salary DESC)に対して異なる方向を定義することができますように、第2の形式は、より柔軟で見ることができるように。

+3

JavascriptからRESTコントロールにデータをソートする複数の列を渡すには、次のJavascriptデータを使用します:['name、asc'、 'location、desc'] – Stephane

+0

あなたの答えに感謝し、それは私を助けました! Order to Sortを変更してください。 Springデータのソートです。 – curious1

+3

これは私の解決策でしたが、春には次のようになりました:Pageable pageable = new PageRequest(0、20、new Sort.Order(Direction.ASC、 "name")、新しいSort.Order(Direction.DESC、 "salary" )))); – Simon

12

Pageableにはソートも指定できるオプションがあります。 java doc

ソートパラメータを適用して新しいPageRequestを作成します。

+2

このようにして、すべてのプロパティに対して1つのソート方向を設定します。プロパティごとにソート方向を区別したい場合は、トマスが指摘したようにソートオブジェクトを使用する必要があります。 – Mariusz

関連する問題