salut,
Sur la dernière page, PageImpl.getTotalElements ne renvoie pas le nombre total correct d'éléments.
J'ai besoin de page.getTotalElements () afin d'afficher le nombre total de lignes dans la partie web
avec cette maniere :,Code:resp.headers.get('X-Total-Count')
j'utilise ce code
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 @GetMapping("/student") @Timed public ResponseEntity<List<StudentDTO>> getAllStudent(Pageable pageable) { Page<StudentDTO> page=studentService.getAllStudent(pageable); HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/student"); return ResponseEntity.ok().headers(headers).body(page.getContent()); } public Page<StudentDTO> getAllStudent(Pageable pageable) { Integer count = 0; if (pageable != null && !pageable.isUnpaged()) { String queryCountStr = "SELECT count(*) "; queryCountStr += " FROM student "; count = getCount(queryCountStr, new String[] { }, new Object[] { }); } String querystr = "SELECT "; querystr += " student.name,student.department "; querystr += " FROM student "; if (pageable != null && !pageable.isUnpaged()) { querystr += "LIMIT " + pageable.getPageSize() + " OFFSET " + pageable.getPageNumber(); } List<StudentDTO> students = getResultList(querystr, "studentMap", new String[] { }, new Object[] {}).stream().map(object -> (StudentDTO) object).collect(Collectors.toList()); return (pageable != null && pageable.isUnpaged()) ? new PageImpl<StudentDTO>(students) : new PageImpl<StudentDTO>(students, pageable, count); } public static <T> HttpHeaders generatePaginationHttpHeaders(Page<T> page, String baseUrl) { HttpHeaders headers = new HttpHeaders(); headers.add("X-Total-Count", Long.toString(page.getTotalElements())); String link = ""; if ((page.getNumber() + 1) < page.getTotalPages()) { link = "<" + generateUri(baseUrl, page.getNumber() + 1, page.getSize()) + ">; rel=\"next\","; } // prev link if ((page.getNumber()) > 0) { link += "<" + generateUri(baseUrl, page.getNumber() - 1, page.getSize()) + ">; rel=\"prev\","; } // last and first link int lastPage = 0; if (page.getTotalPages() > 0) { lastPage = page.getTotalPages() - 1; } link += "<" + generateUri(baseUrl, lastPage, page.getSize()) + ">; rel=\"last\","; link += "<" + generateUri(baseUrl, 0, page.getSize()) + ">; rel=\"first\""; headers.add(HttpHeaders.LINK, link); return headers; }
merci d'avance
