服务器 - 客户端应用程序中的Spring Data分页

时间:2013-07-05 20:15:33

标签: java rest pagination client-server spring-data

我很难理解如何在页面中检索信息,而不是整体检索信息。到目前为止,我目前的应用程序有一个数据库,一个服务器/服务和一个前端GUI客户端应用程序。

后端(服务)如下所示:

IOrdheadService.java

public interface IOrdheadService {

@GET
@Path("/ordheads")
@Produces("application/json")
List<Ordhead> getOrdheadList();

@GET
@Path("/ordhead/{id}")
@Produces("application/json")
Ordhead getOrdhead(@PathParam("id") String id);

OrdheadService.java

@Service
@Path("ordheadservice")
public class OrdheadService implements IOrdheadService {

@Autowired
private OrdheadRepository ordheadRepository;
@Autowired
private IPrimaryKeyGenerator primaryKeyGenerator;

@Override
public List<Ordhead> getOrdheadList() {
    return ordheadRepository.findAll();
}

@Override
public Ordhead getOrdhead(@QueryParam("id") String id) {
    return ordheadRepository.findByPrimaryKey(id);
}

OrdheadRepository.java

public interface OrdheadRepository extends JpaRepository<Ordhead, String> {

Ordhead findByPrimaryKey(String id);
}

客户收到这样的信息:

    private List<Ordhead> resultList;
    resultList = client.getOrdheadList();

然后我使用|&lt;遍历resultList。 &LT;&LT; &GT;&GT; &GT; |屏幕上的按钮。

尝试使用页面复制该功能,我在OrdheadService中尝试了以下内容

    PageRequest page1 = new PageRequest(
            0, 20, Direction.ASC, "primaryKey");
           Pageable p = new PageRequest(0, 20);
    return ordheadRepository.findAll(page1).getContent();

哪个有效 - 返回前20个结果。但是,我需要客户知道有多少页面。这样,如果有40条记录并且客户端在记录20上,则按下&gt;&gt;按钮将获得接下来的20条记录并将客户移至记录21。

我试过阅读以下链接:

https://github.com/SpringSource/spring-data-rest/wiki/Paging-and-Sorting http://blog.fawnanddoug.com/2012/05/pagination-with-spring-mvc-spring-data.html

但还没弄清楚如何正确实施它。

感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

ordheadRepository.findAll(page1)会返回Page<Ordhead>,其中包含所有必要信息以及网页内容。