2013-03-10 12 views
12

Mam następującej konfiguracji:org.hibernate.AnnotationException: Nie podano identyfikator dla jednostki - nawet gdy było

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

mam klasę Geoname w com.example.domain:

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

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

jeszcze, kiedy działa, pojawia się następujący wyjątek:

spowodowane: org.hibernate.AnnotationException: Brak identyfikator określonydo jednostki: com.example.domain.Geoname w org.hibernate.cfg.InheritanceState.determineDefaultAccessType (InheritanceState.java:277) w org.hibernate.cfg.InheritanceState.getElementsToProcess (InheritanceState.java:224) w org.hibernate.cfg.AnnotationBinder.bindClass (AnnotationBinder.java:664) na org.hibernate.cfg.Configuration $ MetadataSourceQueue.processAnnotatedClassesQueue (Configuration.java:3449) na org.hibernate.cfg.Configuration $ MetadataSourceQueue .processMetadata (Configuration.java: 3403) pod org.hibernate.cfg.Configuration.secondPassCompile (Configuration.java:1330) pod org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1730)

Jakieś pomysły, dlaczego?

Uwaga: Łączę mongody i hibernację/mysql w tym projekcie.

+2

Czy adnotacja id jeden z pakietu 'javax.persistence'? –

+1

możesz pokazać import – PSR

Odpowiedz

50

miałem następujący

import org.springframework.data.annotation.Id; 

Oczywiście, powinno być:

import javax.persistence.Id; 

Dzięki @JB Nizet

+1

Grar! Spędził dobrą godzinę na ten sam problem, zanim natknąłem się na tę odpowiedź: wściekłość: –

+1

przeszukany, to jest prawdziwy powód – zhaozhi

+1

spędził 1 dzień i pół próbuje rozwiązać problem, nigdy naprawdę nie myślałem, że to było przyczyną ... dzięki dużo – jpganz18

-1

spróbować

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

przepraszam. go nie rozwiąże – checklist

Powiązane problemy