Reputation: 11
`2024-01-14T20:25:05.873+05:30 INFO 12272 --- [ main] c.l.s.cruddemo.CruddemoApplication : Starting CruddemoApplication using Java 17.0.2 with PID 12272 (C:\Users\Anand\Desktop\dev-spring-boot\04 - spring boot rest crud\02 - Spring
Boot rest crud demo employee\cruddemo\target\classes started by Anand in C:\Users\Anand\Desktop\dev-spring-boot\04 - spring
boot rest crud\02 - Spring Boot rest crud demo employee\cruddemo)
2024-01-14T20:25:05.895+05:30 INFO 12272 --- [ main] c.l.s.cruddemo.CruddemoApplication : No active profile set, falling back to 1 default profile: "default"
2024-01-14T20:25:11.187+05:30 INFO 12272 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-01-14T20:25:11.297+05:30 INFO 12272 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 39 ms. Found 0 JPA repository interfaces.
2024-01-14T20:25:14.180+05:30 INFO 12272 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)
2024-01-14T20:25:14.213+05:30 INFO 12272 --- [ main] o.apache.catalina.core.StandardService : Starting service
[Tomcat]
2024-01-14T20:25:14.215+05:30 INFO 12272 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet
engine: [Apache Tomcat/10.1.16]
2024-01-14T20:25:14.449+05:30 INFO 12272 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2024-01-14T20:25:14.451+05:30 INFO 12272 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 8353 ms
2024-01-14T20:25:15.043+05:30 INFO 12272 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2024-01-14T20:25:18.077+05:30 INFO 12272 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@5af5d76f
2024-01-14T20:25:18.103+05:30 INFO 12272 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2024-01-14T20:25:18.658+05:30 INFO 12272 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2024-01-14T20:25:19.274+05:30 INFO 12272 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.3.1.Final
2024-01-14T20:25:20.240+05:30 INFO 12272 --- [ main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
2024-01-14T20:25:22.797+05:30 INFO 12272 --- [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
2024-01-14T20:25:24.643+05:30 ERROR 12272 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Entity 'com.luv2code.springboot.cruddemo.entity.Employee' has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId' property)
2024-01-14T20:25:24.645+05:30 WARN 12272 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Entity 'com.luv2code.springboot.cruddemo.entity.Employee' has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId' property)
2024-01-14T20:25:24.648+05:30 INFO 12272 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2024-01-14T20:25:24.786+05:30 INFO 12272 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
2024-01-14T20:25:24.813+05:30 INFO 12272 --- [ main] o.apache.catalina.core.StandardService : Stopping service
[Tomcat]
2024-01-14T20:25:24.887+05:30 INFO 12272 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger :
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-01-14T20:25:24.993+05:30 ERROR 12272 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Entity 'com.luv2code.springboot.cruddemo.entity.Employee' has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId' property)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1775) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1173) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:936) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0]
at com.luv2code.springboot.cruddemo.CruddemoApplication.main(CruddemoApplication.java:10) ~[classes/:na]
Caused by: org.hibernate.AnnotationException: Entity 'com.luv2code.springboot.cruddemo.entity.Employee' has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId' property)
at org.hibernate.boot.model.internal.InheritanceState.determineDefaultAccessType(InheritanceState.java:279) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.boot.model.internal.InheritanceState.getElementsToProcess(InheritanceState.java:215) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.boot.model.internal.InheritanceState.postProcess(InheritanceState.java:160) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.boot.model.internal.EntityBinder.handleIdentifier(EntityBinder.java:296) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.boot.model.internal.EntityBinder.bindEntityClass(EntityBinder.java:231) ~[hibernate-core-6.3.1.Finaerarchies(MetadataBuildingProcess.java:278) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:321) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503)
~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1771) ~[spring-beans-6.1.1.jar:6.1.1]
... 16 common frames omitted`
I am retriving data from mysql workbench using spring boot jpa rest
Upvotes: 1
Views: 474
Reputation: 31
You need to add a @id
annotation in your Entity
Employee.java class over a field which is your primary key.
@Id
Long id;
Upvotes: 1
Reputation: 4926
The stackTrace that you get tells you everything that you have to change:
Failed to initialize JPA EntityManagerFactory: Entity 'com.luv2code.springboot.cruddemo.entity.Employee' has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId'
You have to add the @Id
annotation to Employee
class,
Something like this:
@Id
Long id;
Id mean primary key.
Upvotes: 0