2017-06-09 16 views
0

インターネット上で、私はSpringがデータベースから検索されたデータのリストを並べ替えるだけでなくページングを行うことができることを発見しました。したがって、私は次のように私のテストクラスを作成しました: Spring Pageableは注文のためには機能しません

@Test 
public void testPageable() { 
     int pageSize = 5; 
     Sort sort = new Sort(Direction.DESC, "someColumnA"); 
     Pageable pageable = new PageRequest(0, pageSize, sort); 
     List<SomeObject> listOFSomeObject = getDao().getListData("paramOne", pageable); 
} 

私は戻って正しい場合のみ5つのレコードを取得しますが、私は、DESCのファッションにsomeColumnAの順序を取得することはありませんリストを分析

誰かが私に間違っていることを教えてもらえますか? FYIと同じように、私はHibernateをデータベースアクセスとSpring名前付きクエリに使用しています。

EDIT:getListDataため コード() - >

public interface SomeRepository 
       extends JpaRepository<EntityMappedViaHibernate, String> { 

    List<Object[]> getListData(@Param(value = PARAM_ONE) final String paramOne, Pageable pageable); 
} 

次のように私のHibernateのエンティティは次のとおりです。

@NamedQueries(value = { 
@NamedQuery(name = "SomeRepository.getListData", query = "select id, someColumnA from EntityMappedViaHibernate where id = :paramOne") 
}) 
@Entity 
@Table(name = "entity_mapped_via_hibernate") 
public class EntityMappedViaHibernate implements Serializable { 
    // Code Omitted on purpose 
} 
+0

'getListData'のコードを追加できますか? –

+0

@Darshan、必要なコードを追加しました。どうぞご覧ください。 – Raj

+0

正しいかどうかはわかりませんが、メソッドは 'Page 'を返す必要があります。それを変更しよう –

答えて

0

だから、私のように、この問題に対する解決策を苦労しているあなたの人々がされますリポジトリ内でクエリを実行する必要があります。私の場合、それはSomeRepositoryの中になければなりません。だから、レポのコードに次の操作を行いません。

public interface SomeRepository 
      extends JpaRepository<EntityMappedViaHibernate, String> { 

@Query("select id, someColumnA from EntityMappedViaHibernate where id = :paramOne") 
List<Object[]> getListData(@Param(value = PARAM_ONE) final String paramOne, Pageable pageable); 
} 

EntityMappedViaHibernate内部NamedQueryを持ってする必要はあります。それでおしまい!!

誰かが答えを見つけ、私のように苦労しないことを願っています。

関連する問題