2013-03-10 41 views
12

我有以下配置:org.hibernate.AnnotationException:沒有爲實體指定的標識符 - 即使它是

<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> 

我有我的Geoname類com.example.domain:

@Entity 
@Table(name="geonames") 
public class Geoname implements Serializable { 

    @Id 
    @Column(name="geonameid") 
    private Long geonameid = null; 
} 

還在運行時,出現以下異常:

引起:org.hibernate.AnnotationException:未指定標識 爲實體:com.example.domain.Geoname在 org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:277) 在 org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:224) 在 org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:664) 在 org.hibernate.cfg.Configuration $ MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3449) 在 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)

任何想法爲什麼?

備註:我將mongodb和hibernate/mysql結合在這個項目上。

+2

是ID註解一個來自'javax.persistence'包? – 2013-03-10 08:39:42

+1

可以顯示導入 – PSR 2013-03-10 09:00:17

回答

50

我有以下

import org.springframework.data.annotation.Id; 

當然,它應該是:

import javax.persistence.Id; 

由於@JB Nizet

+1

格雷爾!在我遇到這個答案之前花了一個小時,我遇到了同樣的問題:憤怒: – 2015-06-16 14:24:00

+1

搜索了很多,這是真正的原因 – zhaozhi 2015-06-24 07:36:18

+1

花了1天,一半試圖解決這個問題,從來沒有真的認爲這是原因...謝謝很多 – jpganz18 2015-09-03 20:54:39

-1

試試這個

@Column(name="geonameid",unique=true,nullable=false) 
+0

對不起。沒有解決它 – checklist 2013-03-10 08:50:39

相關問題