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 : Sélectionner tout - Visualiser dans une fenêtre à part
resp.headers.get('X-Total-Count')
,


j'utilise ce code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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