Not able to add JPA dependency into spring-boot project

Tags: , , ,



I am trying to add JPA Maven dependency to already created spring-boot project but I am getting following error:

Error: Could not find or load main class com.kame.demo.DemoApplication

When I remove it the error is gone.

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.196</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jasper</artifactId>
            <version>8.5.32</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
    </dependencies>

application.properties

spring.mvc.view.prefix=/pages/
spring.mvc.view.suffix=.jsp

spring.h2.console.enabled=true
spring.datasource.platform=h2
spring.datasource.url=jdbc:h2:mem:navin

I tried to find answer online but none was solution for me.

Also tried to create > Spring starter project > an there immediately add JPA, Web and H2 but still same error.

I am using STS IDE, is something related to it maybe?

Answer

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
 </dependency>

Is itself a demo project with an extending SpringBoot class as the main class of your project. But this dependency does the same :

   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

So there is high chances that both will clash… The solution is to import the correct dependency for jpa and not the spring boot starter jpa dependency.

EDIT

This one might do the trick instead :

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
  </dependency>

But I recommend you read the official documents to get started properly : https://docs.spring.io/spring-data/jpa/docs/2.1.0.RC2/reference/html/



Source: stackoverflow