Frage

Ich erhalte den folgenden Fehler bei der einfachsten Abfrage:

org.hibernate.hql.internal.ast.QuerySyntaxException: <table_name> is not mapped [<query_string>]

In hibernate.cfg.xml Ich habe das Eigentum;

<property name="current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property>

ThreadLocalSessionContext ist in org.hibernate.context.internal von Hibernate 4.x-hibernate-core-4.2.6.Final.jar.

Alles andere im Ruhezustand funktioniert einwandfrei.Jedoch, ich kann keine Abfrage ausführen.

Was verpasse ich?

Danke für die Hilfe.

//=========================

BEARBEITEN:

<table_name> ist definiert als eine Entität in hibernate.cfg.xml und alles aber HQL - einschließlich der Updates auf <table_name> arbeiten ohne Fehler.

War es hilfreich?

Lösung

Es gibt zwei Möglichkeiten, die mir in den Sinn kommen

  1. Der Name, auf den Sie in Ihrem HQL verweisen, ist keine Entität.Für z.B.,

    HQL ist "Select TestEntity from TestEntity TestEntity", es ist jedoch keine Entitätsklasse mit dem Namen TestEntity definiert

oder

  1. Sie haben TestEntity definiert, aber es wird nicht verwaltet.Sie sagen, dass andere Operationen in der Entität funktionieren, es sieht so aus, als würden Sie wahrscheinlich einen falschen Namen in Ihrem HQL verwenden.Wenn Sie jedoch sichergehen möchten, dass die Entität verwaltet wird, können Sie die Hibernate-Debug-Protokollierung aktivieren und Sie sollten Informationen wie unten sehen, in denen Sie die Liste der verwalteten Klassen sehen können.

    01:09:40,322 DEBUG HibernatePersistenceProvider:110 - Checking persistence-unit [name=persistence-unit_test, explicit-provider=org.hibernate.ejb.HibernatePersistence] against incoming persistence unit name [persistence-unit_demo]
    01:09:40,322 DEBUG ProviderChecker:106 - Persistence-unit [persistence-unit_demo] requested PersistenceProvider [org.hibernate.ejb.HibernatePersistence]
    01:09:40,322 DEBUG LogHelper:117 - PersistenceUnitInfo [
        name: persistence-unit_demo
        persistence provider classname: org.hibernate.ejb.HibernatePersistence
        classloader: null
        excludeUnlistedClasses: false
        JTA datasource: null
        Non JTA datasource: null
        Transaction type: RESOURCE_LOCAL
        PU root URL: file:/E:/Test/target/classes/
        Shared Cache Mode: null
        Validation Mode: null
        Jar files URLs []
        Managed classes names [
            com.test.model.TestEntity
    
        Mapping files names []
        Properties [
            hibernate.c3p0.timeout: 100
            hibernate.connection.autocommit: false
            hibernate.connection.driver_class: com.mysql.jdbc.Driver
            hibernate.c3p0.max_statements: 0
            hibernate.c3p0.max_size: 50
            hibernate.dialect: org.hibernate.dialect.MySQL5InnoDBDialect
            hibernate.c3p0.idle_test_period: 100
            hibernate.c3p0.min_size: 5
            hibernate.connection.username: XXXX
            hibernate.hbm2ddl.auto: update
            hibernate.c3p0.acquire_increment: 5
            hibernate.connection.url: jdbc:mysql://localhost:3306/test
            hibernate.connection.password: XXXX
            hibernate.show_sql: true
            hibernate.connection.provider_class: org.hibernate.connection.C3P0ConnectionProvider]
    01:09:40,337 DEBUG IntegratorServiceImpl:63 - Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator].
    01:09:40,353 DEBUG IntegratorServiceImpl:63 - Adding Integrator [org.hibernate.secure.spi.JaccIntegrator].
    

Andere Tipps

Der Fehler sollte hauptsächlich von der kommen query itself.sie sollten versuchen, sicherzustellen, dass der Name der Entity sie führen eine Anfrage aus, die genau wie der Name der class nicht wie der Name des SQL table damit verbunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top