title: Why am I obtaining this "org.hibernate.exception.SQLGrammarException" in a Spring Boot project using Spring Data JPA?
body: <p>I am pretty new in Spring Boot and I am finding some difficulties trying to configure JPA on a <strong>Spring Boot 2.2.5.RELEASE</strong> project connecting to a <strong>MariaDB</strong> database.</p>
  
  <p>Here the Github repository link of the mentioned project: <a href="https://github.com/AndreaNobili/SpringBoot-Excel-API" rel="nofollow noreferrer">https://github.com/AndreaNobili/SpringBoot-Excel-API</a></p>
  
  <p>I try to explain my situation in details:</p>
  
  <p>Into my <strong>MariaDB</strong> server have a database named <strong>db_test</strong> containing a single table named <strong>order</strong> and having this structure:</p>
  
  <pre><code>'id',              'bigint(20)',   'NO', 'PRI', NULL,   'auto_increment'
  'name',            'varchar(255)', 'NO', '',    NULL,   ''
  'address',         'varchar(255)', 'NO', '',    NULL,   ''
  'product',         'varchar(255)', 'NO', '',    NULL,   ''
  'order_date_time', 'datetime',     'NO', '',    NULL,   ''
  'quantity',        'tinyint(4)',   'NO', '',    NULL,   ''
  </code></pre>
  
  <p>Then I have this model class named <strong>Order</strong> mapping the previous table:</p>
  
  <pre><code>@Entity // This tells Hibernate to make a table out of this class
  public class Order {
  
      @Id
      @GeneratedValue(strategy=GenerationType.AUTO)
      private int id;
  
      @Column(name = "name")
      private String fullName;
      private String address;
      private String product;
  
      @Column(name = "order_date_time")
      private String orderDate;
  
      private Double quantity;
  
      public int getId() {
          return id;
      }
  
      public void setId(int id) {
          this.id = id;
      }
  
      public String getFullName() {
          return fullName;
      }
  
      public void setFullName(String fullName) {
          this.fullName = fullName;
      }
  
      public String getAddress() {
          return address;
      }
  
      public void setAddress(String address) {
          this.address = address;
      }
  
      public String getProduct() {
          return product;
      }
  
      public void setProduct(String product) {
          this.product = product;
      }
  
      public String getOrderDate() {
          return orderDate;
      }
  
      public void setOrderDate(String orderDate) {
          this.orderDate = orderDate;
      }
  
      public Double getQuantity() {
          return quantity;
      }
  
      public void setQuantity(Double quantity) {
          this.quantity = quantity;
      }
  
  }
  </code></pre>
  
  <p>I defined this JPA <strong>OrderRepository</strong> interface extending the <strong>CrudRepository</strong> interface:</p>
  
  <pre><code>package com.springboot.excelapi.repository;
  
  import org.springframework.data.repository.CrudRepository;
  
  import com.springboot.excelapi.dto.Order;
  
  public interface OrderRepository extends CrudRepository&lt;Order, Integer&gt; {
  
  }
  </code></pre>
  
  <p>Then I created a service class calling the previous repository (to implement the business logic service layer):</p>
  
  <p>First I definied an <strong>OrderService</strong> interface:</p>
  
  <pre><code>package com.springboot.excelapi.service;
  
  import java.util.List;
  
  import com.springboot.excelapi.dto.Order;
  
  public interface OrderService {
  
      public List&lt;Order&gt; getOrdersList();
  }
  </code></pre>
  
  <p>Then I implemented the <strong>OrderServiceImpl</strong> concrete class implementing the previous interface:</p>
  
  <pre><code>package com.springboot.excelapi.service;
  
  import java.util.ArrayList;
  import java.util.List;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Service;
  import com.springboot.excelapi.dto.Order;
  import com.springboot.excelapi.repository.OrderRepository;
  
  @Service
  public class OrderServiceImpl implements OrderService {
  
      @Autowired
      OrderRepository orderRepository;
  
      public List&lt;Order&gt; getOrdersList() {
  
          List&lt;Order&gt; result = (List&lt;Order&gt;) orderRepository.findAll();
  
          //List&lt;Order&gt; result = new ArrayList&lt;Order&gt;();
  
          return result;
      }
  
  }
  </code></pre>
  
  <p>As you can see this class is annotated as <strong>@Service</strong> and into is body I am autowiring the previous <strong>OrderRepository</strong> interface used to perform my query.</p>
  
  <p>Into the <strong>src/main/resources</strong> folder there is the <strong>application.yml</strong> configuration file:</p>
  
  <pre><code>spring:
    application:
      name: Spring Boot Excel API
    datasource:
      driverClassName: org.mariadb.jdbc.Driver
      url: jdbc:mariadb://localhost:3306/db_test
      username: admin
      password: password
      timeBetweenEvictionRunsMillis: 1000
      testWhileIdle: true
      validationQuery: SELECT 1
  
    jpa:
      hibernate: 
        ddl-auto: none
  </code></pre>
  
  <p>It contains the information related to the MariaDB database connection and the <strong>JPA</strong> configuration. At the moment <strong>ddl-auto</strong> is set to <strong>none</strong> because I want to avoid that changes in my model class doesn't affect my database tables structure.</p>
  
  <p>Finnally I have this <strong>JUnit</strong> test class:</p>
  
  <pre><code>@RunWith(SpringRunner.class)
  @SpringBootTest(classes = { Application.class })
  @WebAppConfiguration
  @ActiveProfiles(profiles = { "no-liquibase" })
  public class ExcelResourceIntegrationTest {
  
      @Autowired
      OrderServiceImpl orderService;
  
      @Test
      public void getOrdersListServiceTest() {    
          List&lt;Order&gt; ordersList = orderService.getOrdersList();
  
          assertThat(ordersList).isNotEmpty();
      }
  
  }
  </code></pre>
  
  <p>It contains the <strong>getOrdersListRepositoryTest()</strong> test method that I am usign to test the previous service.</p>
  
  <p>Performing this method in debug mode, it enter into the <strong>getOrdersList()</strong> service method but when it try to execute this line:</p>
  
  <pre><code>List&lt;Order&gt; result = (List&lt;Order&gt;) orderRepository.findAll();
  </code></pre>
  
  <p>it go into error and I obtain an exception.</p>
  
  <p>Into the console I obtain this error message:</p>
  
  <pre><code>2020-03-23 08:39:19.310  INFO 3781 --- [           main] c.s.e.i.ExcelResourceIntegrationTest     : Started ExcelResourceIntegrationTest in 5.136 seconds (JVM running for 6.459)
  2020-03-23 08:39:19.719  WARN 3781 --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1064, SQLState: 42000
  2020-03-23 08:39:19.719 ERROR 3781 --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : (conn:36) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order order0_' at line 1
  Query is: select order0_.id as id1_0_, order0_.address as address2_0_, order0_.name as name3_0_, order0_.order_date_time as order_da4_0_, order0_.product as product5_0_, order0_.quantity as quantity6_0_ from order order0_
  2020-03-23 08:39:19.879  INFO 3781 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
  2020-03-23 08:39:19.882  INFO 3781 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
  2020-03-23 08:39:19.888  INFO 3781 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
  2020-03-23 08:39:19.907  INFO 3781 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
  </code></pre>
  
  <p>So, from what I can understand Hibernate it is trying to perform this query:</p>
  
  <pre><code>select order0_.id as id1_0_, order0_.address as address2_0_, order0_.name as name3_0_, order0_.order_date_time as order_da4_0_, order0_.product as product5_0_, order0_.quantity as quantity6_0_ from order order0_
  </code></pre>
  
  <p>it seems to me pretty strange: why <strong>order0</strong>?</p>
  
  <p>Into the stacktrace I am ontaining this exception:</p>
  
  <pre><code>org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
      at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:281)
      at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)
      at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
      at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
      at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
      at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
      at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:178)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
      at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
      at com.sun.proxy.$Proxy105.findAll(Unknown Source)
      at com.springboot.excelapi.service.OrderServiceImpl.getOrdersList(OrderServiceImpl.java:21)
      at com.springboot.excelapi.integration.ExcelResourceIntegrationTest.getOrdersListServiceTest(ExcelResourceIntegrationTest.java:100)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
      at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
      at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
      at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
      at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
      at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
      at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:40)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
      at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
      at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
      at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
      at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:71)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
      at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
      at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:137)
      at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:89)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:542)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
  Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
      at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
      at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
      at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:67)
      at org.hibernate.loader.Loader.getResultSet(Loader.java:2292)
      at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2050)
      at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2012)
      at org.hibernate.loader.Loader.doQuery(Loader.java:953)
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
      at org.hibernate.loader.Loader.doList(Loader.java:2838)
      at org.hibernate.loader.Loader.doList(Loader.java:2820)
      at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2652)
      at org.hibernate.loader.Loader.list(Loader.java:2647)
      at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
      at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)
      at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
      at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1404)
      at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1562)
      at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1530)
      at org.hibernate.query.Query.getResultList(Query.java:165)
      at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76)
      at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:355)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:371)
      at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:204)
      at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:657)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
      at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:621)
      at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:605)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
      at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:366)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
      at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
      ... 61 more
  Caused by: java.sql.SQLSyntaxErrorException: (conn:36) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order order0_' at line 1
  Query is: select order0_.id as id1_0_, order0_.address as address2_0_, order0_.name as name3_0_, order0_.order_date_time as order_da4_0_, order0_.product as product5_0_, order0_.quantity as quantity6_0_ from order order0_
      at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:139)
      at org.mariadb.jdbc.internal.util.ExceptionMapper.getException(ExceptionMapper.java:101)
      at org.mariadb.jdbc.internal.util.ExceptionMapper.throwAndLogException(ExceptionMapper.java:77)
      at org.mariadb.jdbc.MariaDbStatement.executeQueryEpilog(MariaDbStatement.java:224)
      at org.mariadb.jdbc.MariaDbClientPreparedStatement.executeInternal(MariaDbClientPreparedStatement.java:232)
      at org.mariadb.jdbc.MariaDbClientPreparedStatement.executeQuery(MariaDbClientPreparedStatement.java:177)
      at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
      at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
      at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)
      ... 94 more
  Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order order0_' at line 1
  Query is: select order0_.id as id1_0_, order0_.address as address2_0_, order0_.name as name3_0_, order0_.order_date_time as order_da4_0_, order0_.product as product5_0_, order0_.quantity as quantity6_0_ from order order0_
      at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1098)
      at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1030)
      at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:985)
      at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:161)
      at org.mariadb.jdbc.MariaDbClientPreparedStatement.executeInternal(MariaDbClientPreparedStatement.java:223)
      ... 98 more
  </code></pre>
  
  <p>Why? What is wrong? What am I missing? How can I try to fix this issue?</p>
  
  <p>I attach also my <strong>pom.xml</strong> file:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;
      &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
      &lt;groupId&gt;com.springboot&lt;/groupId&gt;
      &lt;artifactId&gt;excel-api-SOC&lt;/artifactId&gt;
      &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
      &lt;packaging&gt;jar&lt;/packaging&gt;
  
      &lt;name&gt;Excel API with Spring Boot 2&lt;/name&gt;
      &lt;description&gt;Spring Boot - working with Excel API&lt;/description&gt;
  
      &lt;parent&gt;
          &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
          &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
          &lt;version&gt;2.2.5.RELEASE&lt;/version&gt;
          &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt;
      &lt;/parent&gt;
  
      &lt;properties&gt;
          &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
          &lt;project.reporting.outputEncoding&gt;UTF-8&lt;/project.reporting.outputEncoding&gt;
          &lt;java.version&gt;1.8&lt;/java.version&gt;
      &lt;/properties&gt;
  
      &lt;dependencies&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter-security&lt;/artifactId&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;
              &lt;scope&gt;test&lt;/scope&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
              &lt;artifactId&gt;spring-security-test&lt;/artifactId&gt;
              &lt;scope&gt;test&lt;/scope&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
              &lt;artifactId&gt;spring-security-data&lt;/artifactId&gt;
          &lt;/dependency&gt;
  
          &lt;!-- Start of excel dependencies --&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.poi&lt;/groupId&gt;
              &lt;artifactId&gt;poi&lt;/artifactId&gt;
              &lt;version&gt;3.11&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.poi&lt;/groupId&gt;
              &lt;artifactId&gt;poi-ooxml&lt;/artifactId&gt;
              &lt;version&gt;3.11&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;!-- End of excel dependencies --&gt;
  
          &lt;dependency&gt;
            &lt;groupId&gt;commons-io&lt;/groupId&gt;
            &lt;artifactId&gt;commons-io&lt;/artifactId&gt;
            &lt;version&gt;2.6&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;
              &lt;artifactId&gt;commons-lang3&lt;/artifactId&gt;
              &lt;version&gt;3.9&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;!-- Start DB connectivity dependencies --&gt;
  
          &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-jdbc&lt;/artifactId&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
            &lt;groupId&gt;org.mariadb.jdbc&lt;/groupId&gt;
            &lt;artifactId&gt;mariadb-java-client&lt;/artifactId&gt;
            &lt;version&gt;1.5.7&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;!-- End DB connectivity dependencies --&gt;
  
          &lt;!-- JPA dependency --&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter-data-jpa&lt;/artifactId&gt;
          &lt;/dependency&gt;
  
      &lt;/dependencies&gt;
  
      &lt;build&gt;
          &lt;plugins&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                  &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
              &lt;/plugin&gt;
          &lt;/plugins&gt;
      &lt;/build&gt;
  
  
  &lt;/project&gt;
  </code></pre>