Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

org.hibernate.AnnotationException: No identifier specified for entity - even when it was

I have the following configuration:

<bean id="entityManagerFactory"         class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">         <property name="dataSource" ref="jpaDataSource" />         <property name="jpaVendorAdapter">             <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />         </property>         <property name="jpaProperties">             <props>                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>                 <prop key="hibernate.show_sql">true</prop>             </props>         </property>         <property name="packagesToScan">         <list>             <value>com.example.domain</value>             <value>com.example.repositories</value>         </list>     </property> </bean> 

I have my Geoname class in com.example.domain:

@Entity @Table(name="geonames") public class Geoname implements Serializable {      @Id     @Column(name="geonameid")     private Long geonameid = null; } 

yet, when running, I get the following exception:

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.example.domain.Geoname at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:277) at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:224) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:664) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3449) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3403) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1330) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1730)

Any ideas why?

side note: I am combining both mongodb and hibernate/ mysql on this project.

like image 976
checklist Avatar asked Mar 10 '13 08:03

checklist


2 Answers

I had the following

import org.springframework.data.annotation.Id; 

Naturally, it should be:

import javax.persistence.Id; 

Thanks to @JB Nizet

like image 82
checklist Avatar answered Oct 19 '22 05:10

checklist


I faced the same error.I solved it and figured out i didn't put @Id annotations in id field in my Entity class.

@Entity @Table(name="geonames") public class Geoname implements Serializable {      @Column(name="geonameid")     private Long geonameid = null; } 
like image 27
Kunal Hazard Avatar answered Oct 19 '22 06:10

Kunal Hazard