{"id":193,"date":"2018-08-03T07:39:45","date_gmt":"2018-08-03T07:39:45","guid":{"rendered":"http:\/\/horazmakes.com\/blog\/?p=193"},"modified":"2019-02-24T00:21:37","modified_gmt":"2019-02-24T06:21:37","slug":"spring-data-commons-raw-paging","status":"publish","type":"post","link":"https:\/\/horazmakes.com\/blog\/2018\/08\/03\/spring-data-commons-raw-paging\/","title":{"rendered":"spring-data-commons raw paging"},"content":{"rendered":"<p>Always wanted to use reliable Java code for generic pagination. Finally I found spring-data-commons by <a class=\"twitter-atreply pretty-link js-nav\" dir=\"ltr\" href=\"https:\/\/twitter.com\/olivergierke\" data-mentioned-user-id=\"810903350552170500\"><s>@<\/s><b>olivergierke<\/b><\/a>. Exactly what I was looking for. I made a quick reminder for myself on this matter:<\/p>\n<p>Maven dependency<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;dependency&gt;\n  &lt;groupId&gt;org.springframework.data&lt;\/groupId&gt;\n  &lt;artifactId&gt;spring-data-commons&lt;\/artifactId&gt;\n  &lt;version&gt;1.13.13.RELEASE&lt;\/version&gt;\n&lt;\/dependency&gt;<\/pre>\n<p>Imports<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">import org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageImpl;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.data.domain.Pageable;<\/pre>\n<p>Page 1\/3 Example<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">public static void main(String[] args) {\n  int pageNumber = 0;\n  int pageSize = 5;\n  Pageable pageable = new PageRequest(pageNumber, pageSize);\n  String[] data = { \"1\", \"2\", \"3\", \"4\", \"5\" };\n  List&lt;String&gt; elements = Arrays.asList(data);\n  Page&lt;String&gt; page = new PageImpl&lt;&gt;(elements, pageable, 12);\n  System.out.println(\"Page number: \" + page.getNumber());\n  System.out.println(\"Page size: \" + page.getSize());\n  System.out.println(\"Page content: \" + page.getContent());\n  System.out.println();\n  System.out.println(\"Number of elements in this page: \" + page.getNumberOfElements());\n  System.out.println(\"Total elements: \" + page.getTotalElements());\n  System.out.println(\"Total pages: \" + page.getTotalPages());\n  System.out.println(\"Is first: \" + page.isFirst());\n  System.out.println(\"Is last: \" + page.isLast());\n  System.out.println();\n  System.out.println(\"Previous pageable: \" + page.previousPageable());\n  System.out.println(\"Next pageable: \" + page.nextPageable());\n}<\/pre>\n<p>Page 2\/3 Example<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">public static void main(String[] args) {\n  int pageNumber = 1;\n  int pageSize = 5;\n  Pageable pageable = new PageRequest(pageNumber, pageSize);\n  String[] data = {\"6\", \"7\", \"8\", \"9\", \"10\" };\n  List&lt;String&gt; elements = Arrays.asList(data);\n  Page&lt;String&gt; page = new PageImpl&lt;&gt;(elements, pageable, 12);\n  System.out.println(\"Page number: \" + page.getNumber());\n  System.out.println(\"Page size: \" + page.getSize());\n  System.out.println(\"Page content: \" + page.getContent());\n  System.out.println();\n  System.out.println(\"Number of elements in this page: \" + page.getNumberOfElements());\n  System.out.println(\"Total elements: \" + page.getTotalElements());\n  System.out.println(\"Total pages: \" + page.getTotalPages());\n  System.out.println(\"Is first: \" + page.isFirst());\n  System.out.println(\"Is last: \" + page.isLast());\n  System.out.println();\n  System.out.println(\"Previous pageable: \" + page.previousPageable());\n  System.out.println(\"Next pageable: \" + page.nextPageable());\n}<\/pre>\n<p>Page 3\/3 Example<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">public static void main(String[] args) {\n  int pageNumber = 2;\n  int pageSize = 5;\n  Pageable pageable = new PageRequest(pageNumber, pageSize);\n  String[] data = { \"11\", \"12\" };\n  List&lt;String&gt; elements = Arrays.asList(data);\n  Page&lt;String&gt; page = new PageImpl&lt;&gt;(elements, pageable, 12);\n  System.out.println(\"Page number: \" + page.getNumber());\n  System.out.println(\"Page size: \" + page.getSize());\n  System.out.println(\"Page content: \" + page.getContent());\n  System.out.println();\n  System.out.println(\"Number of elements in this page: \" + page.getNumberOfElements());\n  System.out.println(\"Total elements: \" + page.getTotalElements());\n  System.out.println(\"Total pages: \" + page.getTotalPages());\n  System.out.println(\"Is first: \" + page.isFirst());\n  System.out.println(\"Is last: \" + page.isLast());\n  System.out.println();\n  System.out.println(\"Previous pageable: \" + page.previousPageable());\n  System.out.println(\"Next pageable: \" + page.nextPageable());\n}<\/pre>\n<p>\u00a0<\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Always wanted to use reliable Java code for generic pagination. Finally I found spring-data-commons by @olivergierke. Exactly what I was looking for. I made a quick reminder for myself on this matter: Maven dependency &lt;dependency&gt; &lt;groupId&gt;org.springframework.data&lt;\/groupId&gt; &lt;artifactId&gt;spring-data-commons&lt;\/artifactId&gt; &lt;version&gt;1.13.13.RELEASE&lt;\/version&gt; &lt;\/dependency&gt; Imports import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; Page 1\/3 Example public static void main(String[] [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":262,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,86],"tags":[92,95,94,97,96,70,93],"class_list":["post-193","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-programming","tag-java","tag-pagination","tag-paging","tag-raw-pagination","tag-raw-paging","tag-spring","tag-spring-data-commons"],"_links":{"self":[{"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":13,"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":266,"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions\/266"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/media\/262"}],"wp:attachment":[{"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/horazmakes.com\/blog\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}