Question

J'obtiens l'erreur suivante à la plus simple de la requête:

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

Dans hibernate.cfg.xml J'ai de la propriété;

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

ThreadLocalSessionContext est dans org.hibernate.context.internal de Hibernate 4.x-hibernate-core-4.2.6.Final.jar.

Tout le reste sur Hibernate fonctionne bien.Cependant, je ne veux pas en mesure d'exécuter une requête.

Ce qui me manque?

Merci pour l'aide.

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

EDIT:

<table_name> est défini comme une entité en hibernate.cfg.xml et tout mais HQL-- y compris les mises à jour sur <table_name> travaillez avec aucune erreur.

Était-ce utile?

La solution

Il y a deux possibilités qui me vient à l'esprit

  1. Le nom que vous mentionnez dans votre HQL n'est pas une Entité.Par exemple,

    HQL est "Sélectionnez testEntity de TestEntity testEntity" , cependant il n'y a pas de classe d'entité nommée TestEntity défini

ou

  1. Vous avez défini TestEntity mais il n'est pas géré.Vous dites que les autres opérations de l'entité sont de travail, on dirait que vous êtes probablement en utilisant un nom incorrect dans votre HQL.Cependant, si vous voulez être sûr que l'Entité est gérée, vous pouvez activer la veille prolongée de l'enregistrement de débogage et vous devriez voir les informations comme ci-dessous dans lequel vous pouvez voir la liste des classes gérées.

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

Autres conseils

L'erreur doit surtout venir de la query itself.vous devriez essayer et assurez-vous que le nom de l' Entity votre sont de l'exécution d'une demande sur est exactement comme le nom de l' class pas comme le nom de l' SQL table qui y est associée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top