I’m pretty new to Hibernate/JPA. Running the application, I’m getting this error:
Consider defining a bean named 'entityManagerFactory' in your configuration.
The main class (I use @EnableJpaRepositories to let Spring find the repository in other package):
@SpringBootApplication @EnableJpaRepositories public class RunApp { public static void main(String[] args) { SpringApplication.run(RunApp.class, args); } }
My main entity class:
@Entity(name = "User") @Table(name = "users") @Data @NoArgsConstructor @AllArgsConstructor public class User { @Id @GeneratedValue private Long id; private String name; private Integer age; private String email; }
A repository:
@Repository public interface UserRepository extends CrudRepository<User, Long> { }
A properties file:
spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://localhost:3306/mydbtest spring.datasource.username=root spring.datasource.password=123123 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
Maven dependencies:
<dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>2.7.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.7.1</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api --> <dependency> <groupId>javax.persistence</groupId> <artifactId>javax.persistence-api</artifactId> <version>2.2</version> </dependency>
What should I do here?
Advertisement
Answer
I solved this adding the following dependency instead of spring-data-jpa:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.7.1</version> </dependency>
After that, I got this exception:
Error creating bean with name 'entityManagerFactory' defined in class path resource
But simply solved it by adding this dependency:
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency>