2013-03-10 5 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) по адресу org.hibernate.cfg.Configuration.secondPassCompile (Configuration.java:1330) по адресу org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1730)

Любые идеи, почему?

сторона примечание: я комбинирую и mongodb и hibernate/mysql в этом проекте.

+2

ли Id Аннотация один из пакета 'javax.persistence'? –

+1

можно показать импорт – PSR

ответ

50

Я имел следующий

import org.springframework.data.annotation.Id; 

Естественно, это должно быть:

import javax.persistence.Id; 

Благодаря @JB Nizet

+1

Grar! Провел хороший час по той же проблеме, прежде чем я наткнулся на этот ответ: rage: –

+1

много искал, это настоящая причина. – zhaozhi

+1

потратил 1 день и половину, пытаясь решить проблему, никогда не думал, что это причина ... спасибо много – jpganz18

-1

попробовать это

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

извините. не разрешает это – checklist

 Смежные вопросы

  • Нет связанных вопросов^_^