在互联网上,我发现Spring可以进行分页,也可以订购从数据库中检索的数据列表。因此,我创建了我的测试类如下:
@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 );
}
当我分析列表时,我从未以DESC方式订购someColumnA,尽管我只收回了5条正确的记录。
有人可以让我知道我可能做错了什么吗?就像一个FYI,我使用Hibernate进行数据库访问和Spring命名查询。
编辑: getListData()的代码 - &gt;
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 :(得分:0)
所以那些像我一样努力解决这个问题的人是你需要在Repository中进行查询。在我的情况下,它必须在SomeRepository内。因此,在repo的代码中执行以下操作:
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。那就是!!
希望有人找到答案,不要像我一样挣扎。