{"id":91743,"date":"2020-07-07T11:00:00","date_gmt":"2020-07-07T08:00:00","guid":{"rendered":"https:\/\/examples.javacodegeeks.com\/?p=91743"},"modified":"2020-06-30T12:44:32","modified_gmt":"2020-06-30T09:44:32","slug":"spring-boot-pagination-tutorial","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/","title":{"rendered":"Spring Boot Pagination Tutorial"},"content":{"rendered":"<p>In this tutorial, we will see the basic concepts of pagination with a simple spring boot application.<\/p>\n<h2>1. Introduction<\/h2>\n<p>Before going further in this tutorial we will take a look at the common terminology such as introduction to Spring boot, Docker, and Pagination. We are using <em>Docker to communicate with PostgreSQL<\/em>.<\/p>\n<h3>1.1 What is Spring boot?<\/h3>\n<ul>\n<li>Spring boot is a module that provides rapid application development feature to the spring framework including <strong>auto-configuration<\/strong>, <strong>standalone-code<\/strong>, and <strong>production-ready<\/strong> code<\/li>\n<li>It creates applications that are packaged as <em>jar<\/em> and are directly started using embedded servlet container (such as Tomcat, Jetty or Undertow). Thus, no need to deploy the <em>war<\/em> files<\/li>\n<li>It simplifies the maven configuration by providing the starter template and helps to resolve the dependency conflicts. It automatically identifies the required dependencies and imports them in the application<\/li>\n<li>It helps in removing the boilerplate code, extra annotations, and XML configurations<\/li>\n<li>It provides a powerful batch processing and manages the rest endpoints<\/li>\n<li>It provides an efficient JPA-starter library to effectively connect the application with the relational databases<\/li>\n<li>It offers a Microservice architecture and cloud configuration that manages all the application related configuration properties in a centralized manner.<\/li>\n<\/ul>\n<h3>1.2 What is Docker?<\/h3>\n<p>In the present world, <strong>Docker<\/strong> is an important term,<\/p>\n<ul>\n<li>Often used in CI\/CD platform that packages and runs the application with its dependencies inside a container<\/li>\n<li>Is a standard for Linux Containers<\/li>\n<li>A <em>Container<\/em> is a runtime that runs under any Linux kernel and provides a private machine-like space under Linux<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"817\" height=\"286\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/Docker-command-basics-img1-3.jpg\" alt=\"\" class=\"wp-image-91744\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/Docker-command-basics-img1-3.jpg 817w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/Docker-command-basics-img1-3-300x105.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/Docker-command-basics-img1-3-768x269.jpg 768w\" sizes=\"(max-width: 817px) 100vw, 817px\" \/><figcaption>Fig. 1: Docker basic command<\/figcaption><\/figure>\n<\/div>\n<h3>1.3 Pagination<\/h3>\n<p>Consider a scenario where an endpoint returns a list of employees having 100000+ records. Now to retrieve such data from the backend is an expensive task as will consume some heavy resources.<\/p>\n<p>To rescue this resource consumption, <strong>Pagination<\/strong> came into the picture and played an important page. Pagination is a process of dividing data into suitable sizes to save resources (i.e. displaying a small number of all, by a page). Now this sizeable chunk will return the list of employees and other paging info (which we would see in this tutorial) based on the page-number and page-size parameters that are passed in an HTTP GET request. For instance \u2013 a request like <code>\/employees\/getAll?pageNumber=0&amp;pageSize=10<\/code> would return a batch of first 10 employees from the database and <code>\/employees\/getAll?pageNumber=1&amp;pageSize=10<\/code> would return the next batch of 10 employees and so on. . .&nbsp;<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"818\" height=\"775\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-sample-pagination-response-img1.jpeg\" alt=\"Spring Boot Pagination - Sample pagination response\" class=\"wp-image-91745\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-sample-pagination-response-img1.jpeg 818w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-sample-pagination-response-img1-300x284.jpeg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-sample-pagination-response-img1-768x728.jpeg 768w\" sizes=\"(max-width: 818px) 100vw, 818px\" \/><figcaption>Fig. 2: Sample pagination response<br \/><\/figcaption><\/figure>\n<\/div>\n<p>In the spring framework, <code>PaginationAndSortingRepository<\/code> which is an extension of <code>CrudRepository<\/code> provides this functionality (i.e. to retrieve the records using the pagination and sorting techniques). To begin with, we will create a spring boot application that communicates with the Postgres database. But before going any further I\u2019m assuming that readers are aware of the concepts of creating and running a basic spring boot application.<\/p>\n<h2>2. Spring Boot Pagination Tutorial<\/h2>\n<p>Here is a systematic guide for implementing this tutorial.<\/p>\n<h3>2.1 Application Pre-requisite<\/h3>\n<p>To start with this tutorial, we are hoping that users at present have the Docker installation completed. If someone needs to go through the Docker installation, please watch <a href=\"https:\/\/www.youtube.com\/watch?v=R-ZMkGvh-9Y\" target=\"_blank\" rel=\"noopener noreferrer\">this<\/a> video.<\/p>\n<h3>2.2 Tools Used and Project Structure<\/h3>\n<p>We are using Eclipse, JDK 8, Maven, and Docker. In case you\u2019re confused about where you should create the corresponding files or folder, let us review the project structure of the spring boot application.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"407\" height=\"450\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-project-structure-guide-img1.jpg\" alt=\"Spring Boot Pagination -  Project structure\" class=\"wp-image-91746\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-project-structure-guide-img1.jpg 407w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-project-structure-guide-img1-271x300.jpg 271w\" sizes=\"(max-width: 407px) 100vw, 407px\" \/><figcaption>Fig. 3: Project structure<\/figcaption><\/figure>\n<\/div>\n<p>Let us start building the application!<\/p>\n<h2>3. Pulling the Postgres image from Docker Hub &amp; Starting it<\/h2>\n<p>To have the <em>Postgres up and working<\/em> on the <em>localhost<\/em> environment, we will <span style=\"text-decoration: underline;\">pull the image from Docker<\/span> and start the container. Users can refer the following commands to pull the image and later start the container.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Docker commands<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_426252\" class=\"syntaxhighlighter  xml\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\">## Docker commands<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"xml plain\">## step1 - Pulling redis image from docker hub<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\">docker pull postgres<\/code><\/div>\n<div class=\"line number4 index3 alt1\">&nbsp;<\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"xml plain\">## step2 - Running the container<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"xml plain\">docker run -d -p 5433:5432 -e POSTGRES_PASSWORD= --name postgres postgres<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>If everything goes well, the Docker image will be pulled and started. Developers can use the <code>docker ps -a<\/code> command to verify if the container was successfully started or not. Developers can go through <a href=\"https:\/\/examples.javacodegeeks.com\/docker-basic-commands\/\" target=\"_blank\" rel=\"noopener noreferrer\">this<\/a> link to understand the Docker basic terminology.<\/p>\n<h2>4. Creating Spring boot application<\/h2>\n<p>Below are the steps involved in developing the application.<\/p>\n<h3>4.1 Maven Dependency<\/h3>\n<p>Here, we specify the dependency for the Spring boot, JPA, and Postgres. Maven will automatically resolve the other dependencies. The <strong>updated<\/strong> file will have the following code.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>pom.xml<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_67670\" class=\"syntaxhighlighter  xml\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">project<\/code> <code class=\"xml color1\">xmlns:xsi<\/code><code class=\"xml plain\">=<\/code><code class=\"xml string\">\"<a href=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">http:\/\/www.w3.org\/2001\/XMLSchema-instance<\/a>\"<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml color1\">xmlns<\/code><code class=\"xml plain\">=<\/code><code class=\"xml string\">\"<a href=\"http:\/\/maven.apache.org\/POM\/4.0.0\">http:\/\/maven.apache.org\/POM\/4.0.0<\/a>\"<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml color1\">xsi:schemaLocation<\/code><code class=\"xml plain\">=<\/code><code class=\"xml string\">\"<a href=\"http:\/\/maven.apache.org\/POM\/4.0.0\">http:\/\/maven.apache.org\/POM\/4.0.0<\/a> <a href=\"https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\">https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd<\/a>\"<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">modelVersion<\/code><code class=\"xml plain\">&gt;4.0.0&lt;\/<\/code><code class=\"xml keyword\">modelVersion<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;com.springboot.pagination&lt;\/<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;SpringbootPaginationTutorial&lt;\/<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">version<\/code><code class=\"xml plain\">&gt;0.0.1-SNAPSHOT&lt;\/<\/code><code class=\"xml keyword\">version<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number8 index7 alt1\">&nbsp;<\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">name<\/code><code class=\"xml plain\">&gt;Springboot and pagination tutorial&lt;\/<\/code><code class=\"xml keyword\">name<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">description<\/code><code class=\"xml plain\">&gt;A tutorial on springboot and pagination using h2 database&lt;\/<\/code><code class=\"xml keyword\">description<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">parent<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;org.springframework.boot&lt;\/<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;spring-boot-starter-parent&lt;\/<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">version<\/code><code class=\"xml plain\">&gt;2.3.1.RELEASE&lt;\/<\/code><code class=\"xml keyword\">version<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">parent<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number17 index16 alt2\">&nbsp;<\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">properties<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">java.version<\/code><code class=\"xml plain\">&gt;1.8&lt;\/<\/code><code class=\"xml keyword\">java.version<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">properties<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number21 index20 alt2\">&nbsp;<\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">dependencies<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml comments\">&lt;!-- spring boot web mvc dependency. --&gt;<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;org.springframework.boot&lt;\/<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;spring-boot-starter-web&lt;\/<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml comments\">&lt;!-- spring boot database communication dependency. --&gt;<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;org.springframework.boot&lt;\/<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;spring-boot-starter-data-jpa&lt;\/<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml comments\">&lt;!-- postgresql dependency --&gt;<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;org.postgresql&lt;\/<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;postgresql&lt;\/<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml comments\">&lt;!-- common utils dependency --&gt;<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;org.apache.commons&lt;\/<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;commons-lang3&lt;\/<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">version<\/code><code class=\"xml plain\">&gt;3.10&lt;\/<\/code><code class=\"xml keyword\">version<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">dependency<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">dependencies<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number45 index44 alt2\">&nbsp;<\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">build<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">finalName<\/code><code class=\"xml plain\">&gt;SpringbootPaginationTutorial&lt;\/<\/code><code class=\"xml keyword\">finalName<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml comments\">&lt;!-- to make spring boot as a fat jar so that all required jar files and<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml comments\">main file is added for running the code from docker. --&gt;<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">plugins<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">plugin<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;org.springframework.boot&lt;\/<\/code><code class=\"xml keyword\">groupId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;spring-boot-maven-plugin&lt;\/<\/code><code class=\"xml keyword\">artifactId<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">plugin<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">plugins<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"xml spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">build<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<div class=\"line number57 index56 alt2\"><code class=\"xml plain\">&lt;\/<\/code><code class=\"xml keyword\">project<\/code><code class=\"xml plain\">&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>4.2 Application Properties<\/h3>\n<p>Create a new properties file at the location: <code>SpringbootPaginationTutorial\/src\/main\/resources\/<\/code> and add the application and Postgres configuration to this file.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>application.properties<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_73307\" class=\"syntaxhighlighter  plain\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"plain plain\">### Server port<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"plain plain\">server.port=8089<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"plain plain\">### Springboot application name<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"plain plain\">spring.application.name=SpringbootPaginationTutorial<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"plain plain\">### PostgresSQL<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"plain plain\">## Default postgres port is 5432. But for poc I created a separate instance running on 5433<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"plain plain\">## Developers can use Docker to run multiple postgres on different port numbers<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"plain plain\">spring.datasource.url=jdbc:postgresql:\/\/localhost:5433\/dvdrental<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"plain plain\">spring.datasource.username=postgres<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"plain plain\"># Password you have set for your postgres setup<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"plain plain\">spring.datasource.password=<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"plain plain\">### Drop n create table again, good for testing, comment this in production<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"plain plain\">spring.jpa.hibernate.ddl-auto=create-drop<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"plain plain\">### Spring jpa tracing<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"plain plain\">spring.jpa.show-sql=true<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"plain plain\">## Pretty print the sql on console<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"plain plain\">spring.jpa.properties.hibernate.format_sql=true<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>4.3 Java Classes<\/h3>\n<p>Let us write all the java classes involved in this application.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h4>4.3.1 Implementation\/Main class<\/h4>\n<p>Add the following code to the main class to bootstrap the application from the main method. Always remember, the entry point of the spring boot application is the class containing <code>@SpringBootApplication<\/code> annotation and the static main method.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Client.java<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_83568\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">package<\/code> <code class=\"java plain\">com.springboot.pagination;<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.slf4j.Logger;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.slf4j.LoggerFactory;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.boot.SpringApplication;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.boot.autoconfigure.SpringBootApplication;<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java comments\">\/\/ Serves two purposes i.e. configuration and bootstrapping.<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java color1\">@SpringBootApplication<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">Client {<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java keyword\">static<\/code> <code class=\"java keyword\">final<\/code> <code class=\"java plain\">Logger LOGGER = LoggerFactory.getLogger(Client.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">static<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">main(String[] args) {<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">SpringApplication.run(Client.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">, args);<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">LOGGER.info(<\/code><code class=\"java string\">\"Springboot and pagination application using postgres database started successfully.\"<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>4.3.2 Model class<\/h4>\n<p>Add the following code to the Movie model class where we\u2019ll define the basic attributes for this class.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Movie.java<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_282004\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">package<\/code> <code class=\"java plain\">com.springboot.pagination.model;<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">javax.persistence.Entity;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">javax.persistence.GeneratedValue;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">javax.persistence.GenerationType;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">javax.persistence.Id;<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java comments\">\/\/ @Entity annotation specifies that the class is mapped to a database table.<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java color1\">@Entity<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">Movie {<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ @Id annotation specifies the primary key of an entity.<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@Id<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ @GeneratedValue provides the generation strategy specification for the primary key values.<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@GeneratedValue<\/code><code class=\"java plain\">(strategy = GenerationType.AUTO)<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java keyword\">long<\/code> <code class=\"java plain\">id;<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java plain\">String title;<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java plain\">String description;<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java keyword\">boolean<\/code> <code class=\"java plain\">released;<\/code><\/div>\n<div class=\"line number20 index19 alt1\">&nbsp;<\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java plain\">Movie() {<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ Default constructor of initialization purpose.<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number24 index23 alt1\">&nbsp;<\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ Getters and Setters.<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">long<\/code> <code class=\"java plain\">getId() {<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">id;<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number29 index28 alt2\">&nbsp;<\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">setId(<\/code><code class=\"java keyword\">long<\/code> <code class=\"java plain\">id) {<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">this<\/code><code class=\"java plain\">.id = id;<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number33 index32 alt2\">&nbsp;<\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java plain\">String getTitle() {<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">title;<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number37 index36 alt2\">&nbsp;<\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">setTitle(String title) {<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">this<\/code><code class=\"java plain\">.title = title;<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number41 index40 alt2\">&nbsp;<\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java plain\">String getDescription() {<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">description;<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number45 index44 alt2\">&nbsp;<\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">setDescription(String description) {<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">this<\/code><code class=\"java plain\">.description = description;<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number49 index48 alt2\">&nbsp;<\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">boolean<\/code> <code class=\"java plain\">isReleased() {<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">released;<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number53 index52 alt2\">&nbsp;<\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">setReleased(<\/code><code class=\"java keyword\">boolean<\/code> <code class=\"java plain\">released) {<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">this<\/code><code class=\"java plain\">.released = released;<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number57 index56 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>4.3.3 DAO interface<\/h4>\n<p>Add the following code the repository interface that will interact with the database to perform CREATE\/GET operations.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>MovieRepository.java<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_552020\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">package<\/code> <code class=\"java plain\">com.springboot.pagination.dao;<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">com.springboot.pagination.model.Movie;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.data.domain.Page;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.data.domain.Pageable;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.data.jpa.repository.JpaRepository;<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">interface<\/code> <code class=\"java plain\">MovieRepository <\/code><code class=\"java keyword\">extends<\/code> <code class=\"java plain\">JpaRepository&lt;Movie, Long&gt; {<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ Fetch all movies by their release status and order them by movie them in ascending order.<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">Page&lt;Movie&gt; findByReleasedOrderByTitleAsc(<\/code><code class=\"java keyword\">boolean<\/code> <code class=\"java plain\">released, Pageable pageable);<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>4.3.4 Configuration class to Pre-populate the table<\/h4>\n<p>Add the following code to this startup class which will populate the table with some random database during the application startup time.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>SaveMovies.java<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_799106\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">package<\/code> <code class=\"java plain\">com.springboot.pagination.boot;<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">com.springboot.pagination.model.Movie;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">com.springboot.pagination.service.MovieService;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.apache.commons.lang3.RandomStringUtils;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.apache.commons.lang3.RandomUtils;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.slf4j.Logger;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.slf4j.LoggerFactory;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.beans.factory.annotation.Autowired;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.stereotype.Component;<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">javax.annotation.PostConstruct;<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java color1\">@Component<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">SaveMovies {<\/code><\/div>\n<div class=\"line number16 index15 alt1\">&nbsp;<\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java keyword\">static<\/code> <code class=\"java keyword\">final<\/code> <code class=\"java plain\">Logger LOGGER = LoggerFactory.getLogger(SaveMovies.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@Autowired<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">MovieService movieService;<\/code><\/div>\n<div class=\"line number21 index20 alt2\">&nbsp;<\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ The annotation will cause the method to get executed after the spring bean is initialized.<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@PostConstruct<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">onApplicationStartup() {<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">saveRandomMoviesInDatabase();<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number27 index26 alt2\">&nbsp;<\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">saveRandomMoviesInDatabase() {<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">LOGGER.info(<\/code><code class=\"java string\">\"Saving the random movie details into the database.\"<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">(<\/code><code class=\"java keyword\">int<\/code> <code class=\"java plain\">i = <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">; i &lt; <\/code><code class=\"java value\">21<\/code><code class=\"java plain\">; i++) {<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Movie movie = <\/code><code class=\"java keyword\">new<\/code> <code class=\"java plain\">Movie();<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">movie.setTitle(RandomStringUtils.randomAlphabetic(<\/code><code class=\"java value\">5<\/code><code class=\"java plain\">));<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">movie.setDescription(RandomStringUtils.randomAlphabetic(<\/code><code class=\"java value\">200<\/code><code class=\"java plain\">));<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">movie.setReleased(RandomUtils.nextBoolean());<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">movieService.save(movie);<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>4.3.5 Controller class<\/h4>\n<p>Add the following code to the controller class designed to handle the incoming requests. The class is annotated with the <code>@RestController<\/code> annotation where every method returns a domain object as a JSON response instead of a view.[ulp id=&#8217;7POIYxRf1FUtPpmL&#8217;]<\/p>\n<p><span style=\"text-decoration: underline;\"><em>MovieController.java<\/em><\/span><\/p>\n<div>\n<div id=\"highlighter_944740\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<div class=\"line number58 index57 alt1\">58<\/div>\n<div class=\"line number59 index58 alt2\">59<\/div>\n<div class=\"line number60 index59 alt1\">60<\/div>\n<div class=\"line number61 index60 alt2\">61<\/div>\n<div class=\"line number62 index61 alt1\">62<\/div>\n<div class=\"line number63 index62 alt2\">63<\/div>\n<div class=\"line number64 index63 alt1\">64<\/div>\n<div class=\"line number65 index64 alt2\">65<\/div>\n<div class=\"line number66 index65 alt1\">66<\/div>\n<div class=\"line number67 index66 alt2\">67<\/div>\n<div class=\"line number68 index67 alt1\">68<\/div>\n<div class=\"line number69 index68 alt2\">69<\/div>\n<div class=\"line number70 index69 alt1\">70<\/div>\n<div class=\"line number71 index70 alt2\">71<\/div>\n<div class=\"line number72 index71 alt1\">72<\/div>\n<div class=\"line number73 index72 alt2\">73<\/div>\n<div class=\"line number74 index73 alt1\">74<\/div>\n<div class=\"line number75 index74 alt2\">75<\/div>\n<div class=\"line number76 index75 alt1\">76<\/div>\n<div class=\"line number77 index76 alt2\">77<\/div>\n<div class=\"line number78 index77 alt1\">78<\/div>\n<div class=\"line number79 index78 alt2\">79<\/div>\n<div class=\"line number80 index79 alt1\">80<\/div>\n<div class=\"line number81 index80 alt2\">81<\/div>\n<div class=\"line number82 index81 alt1\">82<\/div>\n<div class=\"line number83 index82 alt2\">83<\/div>\n<div class=\"line number84 index83 alt1\">84<\/div>\n<div class=\"line number85 index84 alt2\">85<\/div>\n<div class=\"line number86 index85 alt1\">86<\/div>\n<div class=\"line number87 index86 alt2\">87<\/div>\n<div class=\"line number88 index87 alt1\">88<\/div>\n<div class=\"line number89 index88 alt2\">89<\/div>\n<div class=\"line number90 index89 alt1\">90<\/div>\n<div class=\"line number91 index90 alt2\">91<\/div>\n<div class=\"line number92 index91 alt1\">92<\/div>\n<div class=\"line number93 index92 alt2\">93<\/div>\n<div class=\"line number94 index93 alt1\">94<\/div>\n<div class=\"line number95 index94 alt2\">95<\/div>\n<div class=\"line number96 index95 alt1\">96<\/div>\n<div class=\"line number97 index96 alt2\">97<\/div>\n<div class=\"line number98 index97 alt1\">98<\/div>\n<div class=\"line number99 index98 alt2\">99<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">package<\/code> <code class=\"java plain\">com.springboot.pagination.controller;<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">com.springboot.pagination.dto.ResponseDto;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">com.springboot.pagination.model.Movie;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">com.springboot.pagination.service.MovieService;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.slf4j.Logger;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.slf4j.LoggerFactory;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.beans.factory.annotation.Autowired;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.data.domain.Page;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.data.domain.PageRequest;<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.data.domain.Pageable;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.http.HttpStatus;<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.http.MediaType;<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.http.ResponseEntity;<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.util.CollectionUtils;<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.web.bind.annotation.GetMapping;<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.web.bind.annotation.RequestMapping;<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.web.bind.annotation.RequestParam;<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">org.springframework.web.bind.annotation.RestController;<\/code><\/div>\n<div class=\"line number20 index19 alt1\">&nbsp;<\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">java.util.Collections;<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java keyword\">import<\/code> <code class=\"java plain\">java.util.List;<\/code><\/div>\n<div class=\"line number23 index22 alt2\">&nbsp;<\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java comments\">\/\/ Useful to create the Restful microservices.<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java color1\">@RestController<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java color1\">@RequestMapping<\/code><code class=\"java plain\">(<\/code><code class=\"java string\">\"\/api\/movies\"<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">MovieController {<\/code><\/div>\n<div class=\"line number28 index27 alt1\">&nbsp;<\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java keyword\">static<\/code> <code class=\"java keyword\">final<\/code> <code class=\"java plain\">Logger LOGGER = LoggerFactory.getLogger(MovieController.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number30 index29 alt1\">&nbsp;<\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ @Autowired annotation provides the automatic dependency injection.<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@Autowired<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">MovieService movieService;<\/code><\/div>\n<div class=\"line number34 index33 alt1\">&nbsp;<\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ @GetMapping annotation handles the http get request matched with the given uri.<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ @RequestParam annotation reads the request parameters (i.e. basically is a query string)<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ Sample urls -<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ 1. <a href=\"http:\/\/localhost:8089\/api\/movies\/getAll\">http:\/\/localhost:8089\/api\/movies\/getAll<\/a><\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ 2. <a href=\"http:\/\/localhost:8089\/api\/movies\/getAll?pageNumber=2&amp;pageSize=10\">http:\/\/localhost:8089\/api\/movies\/getAll?pageNumber=2&amp;pageSize=10<\/a><\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ 3. <a href=\"http:\/\/localhost:8089\/api\/movies\/getAll?pageSize=15&amp;pageNumber=2\">http:\/\/localhost:8089\/api\/movies\/getAll?pageSize=15&amp;pageNumber=2<\/a><\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@GetMapping<\/code><code class=\"java plain\">(value = <\/code><code class=\"java string\">\"\/getAll\"<\/code><code class=\"java plain\">, produces = MediaType.APPLICATION_JSON_VALUE)<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java plain\">ResponseEntity&lt;ResponseDto&gt; getAllMovies(<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@RequestParam<\/code><code class=\"java plain\">(name = <\/code><code class=\"java string\">\"pageNumber\"<\/code><code class=\"java plain\">, defaultValue = <\/code><code class=\"java string\">\"0\"<\/code><code class=\"java plain\">) <\/code><code class=\"java keyword\">final<\/code> <code class=\"java keyword\">int<\/code> <code class=\"java plain\">pageNumber,&nbsp;&nbsp;&nbsp; <\/code><code class=\"java comments\">\/\/ In spring the default page number starts with '0'.<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@RequestParam<\/code><code class=\"java plain\">(name = <\/code><code class=\"java string\">\"pageSize\"<\/code><code class=\"java plain\">, defaultValue = <\/code><code class=\"java string\">\"5\"<\/code><code class=\"java plain\">) <\/code><code class=\"java keyword\">final<\/code> <code class=\"java keyword\">int<\/code> <code class=\"java plain\">pageSize) {<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">LOGGER.info(<\/code><code class=\"java string\">\"Getting all the movies from the database for page-number= {} and page-size= {}.\"<\/code><code class=\"java plain\">, pageNumber,<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">pageSize);<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">ResponseEntity&lt;ResponseDto&gt; responseEntity;<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">try<\/code> <code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Pageable pageable = PageRequest.of(pageNumber, pageSize);<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Page&lt;Movie&gt; allMovies = movieService.getAllMovies(pageable);<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">responseEntity = createResponseDto(allMovies);<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">} <\/code><code class=\"java keyword\">catch<\/code> <code class=\"java plain\">(<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Exception e) {<\/code><\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">LOGGER.info(<\/code><code class=\"java string\">\"Exception occurred while fetching the response from the database.\"<\/code><code class=\"java plain\">, e);<\/code><\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java keyword\">new<\/code> <code class=\"java plain\">ResponseEntity&lt;&gt;(HttpStatus.INTERNAL_SERVER_ERROR);<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">responseEntity;<\/code><\/div>\n<div class=\"line number57 index56 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number58 index57 alt1\">&nbsp;<\/div>\n<div class=\"line number59 index58 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ @GetMapping annotation handles the http get request matched with the given uri.<\/code><\/div>\n<div class=\"line number60 index59 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ @RequestParam annotation reads the request parameters (i.e. basically is a query string)<\/code><\/div>\n<div class=\"line number61 index60 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ Sample urls -<\/code><\/div>\n<div class=\"line number62 index61 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ 1. <a href=\"http:\/\/localhost:8089\/api\/movies\/findByReleased\">http:\/\/localhost:8089\/api\/movies\/findByReleased<\/a><\/code><\/div>\n<div class=\"line number63 index62 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ 2. <a href=\"http:\/\/localhost:8089\/api\/movies\/findByReleased?isMovieReleased=false\">http:\/\/localhost:8089\/api\/movies\/findByReleased?isMovieReleased=false<\/a><\/code><\/div>\n<div class=\"line number64 index63 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ 3. <a href=\"http:\/\/localhost:8089\/api\/movies\/findByReleased?isMovieReleased=true&amp;pageSize=15\">http:\/\/localhost:8089\/api\/movies\/findByReleased?isMovieReleased=true&amp;pageSize=15<\/a><\/code><\/div>\n<div class=\"line number65 index64 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java comments\">\/\/ 4. <a href=\"http:\/\/localhost:8089\/api\/movies\/findByReleased?pageNumber=1&amp;pageSize=15\">http:\/\/localhost:8089\/api\/movies\/findByReleased?pageNumber=1&amp;pageSize=15<\/a><\/code><\/div>\n<div class=\"line number66 index65 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@GetMapping<\/code><code class=\"java plain\">(value = <\/code><code class=\"java string\">\"\/findByReleased\"<\/code><code class=\"java plain\">, produces = MediaType.APPLICATION_JSON_VALUE)<\/code><\/div>\n<div class=\"line number67 index66 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">public<\/code> <code class=\"java plain\">ResponseEntity&lt;ResponseDto&gt; findByReleased(<\/code><\/div>\n<div class=\"line number68 index67 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@RequestParam<\/code><code class=\"java plain\">(name = <\/code><code class=\"java string\">\"pageNumber\"<\/code><code class=\"java plain\">, defaultValue = <\/code><code class=\"java string\">\"0\"<\/code><code class=\"java plain\">) <\/code><code class=\"java keyword\">final<\/code> <code class=\"java keyword\">int<\/code> <code class=\"java plain\">pageNumber,&nbsp;&nbsp;&nbsp; <\/code><code class=\"java comments\">\/\/ In spring the default page number starts with '0'.<\/code><\/div>\n<div class=\"line number69 index68 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@RequestParam<\/code><code class=\"java plain\">(name = <\/code><code class=\"java string\">\"pageSize\"<\/code><code class=\"java plain\">, defaultValue = <\/code><code class=\"java string\">\"5\"<\/code><code class=\"java plain\">) <\/code><code class=\"java keyword\">final<\/code> <code class=\"java keyword\">int<\/code> <code class=\"java plain\">pageSize,<\/code><\/div>\n<div class=\"line number70 index69 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java color1\">@RequestParam<\/code><code class=\"java plain\">(name = <\/code><code class=\"java string\">\"isMovieReleased\"<\/code><code class=\"java plain\">, defaultValue = <\/code><code class=\"java string\">\"true\"<\/code><code class=\"java plain\">) <\/code><code class=\"java keyword\">final<\/code> <code class=\"java keyword\">boolean<\/code> <code class=\"java plain\">isMovieReleased) {<\/code><\/div>\n<div class=\"line number71 index70 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">LOGGER.info(<\/code><code class=\"java string\">\"Getting all the movies from the database where movie released flag= {} for page-number= {} and \"<\/code> <code class=\"java plain\">+<\/code><\/div>\n<div class=\"line number72 index71 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java string\">\"page-size= {}.\"<\/code><code class=\"java plain\">, isMovieReleased, pageNumber, pageSize);<\/code><\/div>\n<div class=\"line number73 index72 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">ResponseEntity&lt;ResponseDto&gt; responseEntity;<\/code><\/div>\n<div class=\"line number74 index73 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">try<\/code> <code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number75 index74 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Pageable pageable = PageRequest.of(pageNumber, pageSize);<\/code><\/div>\n<div class=\"line number76 index75 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Page&lt;Movie&gt; allMovies = movieService.findByReleased(isMovieReleased, pageable);<\/code><\/div>\n<div class=\"line number77 index76 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">responseEntity = createResponseDto(allMovies);<\/code><\/div>\n<div class=\"line number78 index77 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">} <\/code><code class=\"java keyword\">catch<\/code> <code class=\"java plain\">(<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Exception e) {<\/code><\/div>\n<div class=\"line number79 index78 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">LOGGER.info(<\/code><code class=\"java string\">\"Exception occurred while fetching the response from the database.\"<\/code><code class=\"java plain\">, e);<\/code><\/div>\n<div class=\"line number80 index79 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java keyword\">new<\/code> <code class=\"java plain\">ResponseEntity&lt;&gt;(HttpStatus.INTERNAL_SERVER_ERROR);<\/code><\/div>\n<div class=\"line number81 index80 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number82 index81 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">responseEntity;<\/code><\/div>\n<div class=\"line number83 index82 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number84 index83 alt1\">&nbsp;<\/div>\n<div class=\"line number85 index84 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">private<\/code> <code class=\"java plain\">ResponseEntity&lt;ResponseDto&gt; createResponseDto(<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">Page&lt;Movie&gt; moviesPage) {<\/code><\/div>\n<div class=\"line number86 index85 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">List&lt;Movie&gt; movies = moviesPage.getContent();<\/code><\/div>\n<div class=\"line number87 index86 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">final<\/code> <code class=\"java plain\">ResponseEntity&lt;ResponseDto&gt; responseEntity;<\/code><\/div>\n<div class=\"line number88 index87 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">(CollectionUtils.isEmpty(movies)) {<\/code><\/div>\n<div class=\"line number89 index88 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">LOGGER.info(<\/code><code class=\"java string\">\"Returning an empty list as no movies are fetched from the database.\"<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number90 index89 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">responseEntity = <\/code><code class=\"java keyword\">new<\/code> <code class=\"java plain\">ResponseEntity&lt;&gt;(ResponseDto.create(Collections.emptyList(), <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">, <\/code><code class=\"java value\">0<\/code><code class=\"java plain\">, <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">, <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">),<\/code><\/div>\n<div class=\"line number91 index90 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">HttpStatus.OK);<\/code><\/div>\n<div class=\"line number92 index91 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">} <\/code><code class=\"java keyword\">else<\/code> <code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number93 index92 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">responseEntity = <\/code><code class=\"java keyword\">new<\/code> <code class=\"java plain\">ResponseEntity&lt;&gt;(ResponseDto.create(movies, (<\/code><code class=\"java keyword\">int<\/code><code class=\"java plain\">) moviesPage.getTotalElements(),<\/code><\/div>\n<div class=\"line number94 index93 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">moviesPage.getTotalPages(), moviesPage.getNumber(), moviesPage.isFirst(), <\/code><\/div>\n<div class=\"line number95 index94 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">moviesPage.isLast()), HttpStatus.OK);<\/code><\/div>\n<div class=\"line number96 index95 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number97 index96 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">responseEntity;<\/code><\/div>\n<div class=\"line number98 index97 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number99 index98 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>5. Run the Application<\/h2>\n<p>To execute the application, right-click on the <code>Client.java<\/code> class, <code>Run As -&gt; Java Application<\/code>.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"609\" height=\"589\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-project-run-guide-img1.jpg\" alt=\"\" class=\"wp-image-91747\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-project-run-guide-img1.jpg 609w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/springboot-pagination-tutorial-project-run-guide-img1-300x290.jpg 300w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><figcaption>Fig. 4: Run the Application<\/figcaption><\/figure>\n<\/div>\n<h2>6. Project Demo<\/h2>\n<p>Open the <a href=\"https:\/\/www.getpostman.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Postman<\/a> tool and hit the following URLs to display the data in the JSON format.<\/p>\n<div>\n<div id=\"highlighter_565448\" class=\"syntaxhighlighter  plain\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"plain plain\">\/\/ Fetch all movies<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"plain plain\"><a href=\"http:\/\/localhost:8089\/api\/movies\/getAll?pageNumber=2&amp;pageSize=10\">http:\/\/localhost:8089\/api\/movies\/getAll?pageNumber=2&amp;pageSize=10<\/a><\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"plain plain\">\/\/ Fetch all movies through isReleased boolean<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"plain plain\"><a href=\"http:\/\/localhost:8089\/api\/movies\/findByReleased?isMovieReleased=false\">http:\/\/localhost:8089\/api\/movies\/findByReleased?isMovieReleased=false<\/a><\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>That is all for this tutorial and I hope the article served you whatever you were looking for. Happy Learning and do not forget to share!<\/p>\n<h2>7. Summary<\/h2>\n<p>In this tutorial, we learned:<\/p>\n<ul>\n<li>Introduction to Spring Boot, Docker, and Pagination<\/li>\n<li>Integrate Pagination in a Spring boot application<\/li>\n<li>Using the postman tool to check the controller mappings for the different scenario\u2019s<\/li>\n<\/ul>\n<h2><a name=\"projectDownload\"><\/a>8. Download the Eclipse Project<\/h2>\n<p>This was an example of Pagination in a Spring boot application.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>You can download the full source code of this example here: <a href=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/06\/SpringbootPaginationTutorial.zip\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Spring Boot Pagination Tutorial<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we will see the basic concepts of pagination with a simple spring boot application. 1. Introduction Before going further in this tutorial we will take a look at the common terminology such as introduction to Spring boot, Docker, and Pagination. We are using Docker to communicate with PostgreSQL. 1.1 What is Spring &hellip;<\/p>\n","protected":false},"author":119,"featured_media":1248,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1390],"tags":[719,1386,1675],"class_list":["post-91743","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-boot","tag-postgresql","tag-spring-boot","tag-spring-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot Pagination Tutorial - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"In this tutorial, we will see the basic concepts of pagination with a simple spring boot application. 1. Introduction Before going further in this\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot Pagination Tutorial - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, we will see the basic concepts of pagination with a simple spring boot application. 1. Introduction Before going further in this\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-07T08:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yatin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yatin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/\"},\"author\":{\"name\":\"Yatin\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/9874407a37b028e8be3276e2b5960d13\"},\"headline\":\"Spring Boot Pagination Tutorial\",\"datePublished\":\"2020-07-07T08:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/\"},\"wordCount\":1043,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg\",\"keywords\":[\"PostgreSQL\",\"spring boot\",\"spring tutorial\"],\"articleSection\":[\"Boot\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/\",\"name\":\"Spring Boot Pagination Tutorial - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg\",\"datePublished\":\"2020-07-07T08:00:00+00:00\",\"description\":\"In this tutorial, we will see the basic concepts of pagination with a simple spring boot application. 1. Introduction Before going further in this\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Development\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"spring\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/spring\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Boot\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/spring\/boot\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Spring Boot Pagination Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/9874407a37b028e8be3276e2b5960d13\",\"name\":\"Yatin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2023\/09\/cropped-Yatin-Batra_avatar_1515758148-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2023\/09\/cropped-Yatin-Batra_avatar_1515758148-96x96.jpg\",\"caption\":\"Yatin\"},\"description\":\"An experience full-stack engineer well versed with Core Java, Spring\/Springboot, MVC, Security, AOP, Frontend (Angular &amp; React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).\",\"sameAs\":[\"https:\/\/www.javacodegeeks.com\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/yatin-batra\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Boot Pagination Tutorial - Java Code Geeks","description":"In this tutorial, we will see the basic concepts of pagination with a simple spring boot application. 1. Introduction Before going further in this","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Spring Boot Pagination Tutorial - Java Code Geeks","og_description":"In this tutorial, we will see the basic concepts of pagination with a simple spring boot application. 1. Introduction Before going further in this","og_url":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2020-07-07T08:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg","type":"image\/jpeg"}],"author":"Yatin","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Yatin","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/"},"author":{"name":"Yatin","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/9874407a37b028e8be3276e2b5960d13"},"headline":"Spring Boot Pagination Tutorial","datePublished":"2020-07-07T08:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/"},"wordCount":1043,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg","keywords":["PostgreSQL","spring boot","spring tutorial"],"articleSection":["Boot"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/","url":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/","name":"Spring Boot Pagination Tutorial - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg","datePublished":"2020-07-07T08:00:00+00:00","description":"In this tutorial, we will see the basic concepts of pagination with a simple spring boot application. 1. Introduction Before going further in this","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/spring-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/spring-boot-pagination-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java Development","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/"},{"@type":"ListItem","position":4,"name":"spring","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/spring\/"},{"@type":"ListItem","position":5,"name":"Boot","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/spring\/boot\/"},{"@type":"ListItem","position":6,"name":"Spring Boot Pagination Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/9874407a37b028e8be3276e2b5960d13","name":"Yatin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2023\/09\/cropped-Yatin-Batra_avatar_1515758148-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2023\/09\/cropped-Yatin-Batra_avatar_1515758148-96x96.jpg","caption":"Yatin"},"description":"An experience full-stack engineer well versed with Core Java, Spring\/Springboot, MVC, Security, AOP, Frontend (Angular &amp; React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).","sameAs":["https:\/\/www.javacodegeeks.com"],"url":"https:\/\/examples.javacodegeeks.com\/author\/yatin-batra\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/91743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/119"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=91743"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/91743\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/1248"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=91743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=91743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=91743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}