web-dev-qa-db-ger.com

org.hibernate.AnnotationException: Für die Entität wurde kein Bezeichner angegeben - auch wenn dies der Fall war

Ich habe folgende Konfiguration:

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

Ich habe meine Geoname-Klasse in com.example.domain:

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

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

beim Laufen bekomme ich jedoch die folgende Ausnahme:

Verursacht durch: org.hibernate.AnnotationException: Kein Bezeichner angegeben für Entität: com.example.domain.Geoname um org.hibernate.cfg.InheritanceState.determineDefaultAccessType (InheritanceState.Java:277) beim org.hibernate.cfg.InheritanceState.getElementsToProcess (InheritanceState.Java:224) beim org.hibernate.cfg.AnnotationBinder.bindClass (AnnotationBinder.Java:664) beim org.hibernate.cfg.Configuration $ MetadataSourceQueue.processAnnotatedClassesQueue (Configuration.Java:3449) beim org.hibernate.cfg.Configuration $ MetadataSourceQueue.processMetadata (Configuration.Java:3403) beim org.hibernate.cfg.Configuration.secondPassCompile (Configuration.Java:1330) beim org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.Java:1730)

Irgendwelche Ideen warum?

nebenbemerkung: Ich kombiniere in diesem Projekt sowohl mongodb als auch hibernate/mysql.

26
checklist

Ich hatte folgendes 

import org.springframework.data.annotation.Id;

Natürlich sollte es sein:

import javax.persistence.Id;

Danke an @JB Nizet

108
checklist

Ich habe den gleichen Fehler erlebt. Ich habe das Problem gelöst und herausgefunden, dass ich in meiner Entity-Klasse keine @Id-Anmerkungen in das ID-Feld eingefügt habe.

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

    @Column(name="geonameid")
    private Long geonameid = null;
}
3
Kunal Hazard

Möglicherweise haben Sie zusätzliche Felder in der Entity-Klasse. Wie Felder, die nicht kommentiert werden, oder Konstruktoren. Bitte entfernen Sie diese und versuchen Sie es. Es hat für mich funktioniert.

Glückliche Kodierung.

0