Pregunta

Recibo el siguiente error en la consulta más simple:

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

En hibernate.cfg.xml Tengo la propiedad;

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

ThreadLocalSessionContext es en org.hibernate.context.internal de Hibernate 4.x-hibernate-core-4.2.6.Final.jar.

Todo lo demás en Hibernate funciona bien.Sin embargo, no puedo ejecutar una consulta.

¿Qué me estoy perdiendo?

Gracias por la ayuda.

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

EDITAR:

<table_name> se define como una entidad en hibernate.cfg.xml y todo pero HQL, incluidas las actualizaciones sobre <table_name> están funcionando sin errores.

¿Fue útil?

Solución

Hay dos posibilidades que vienen a mi mente

  1. El nombre que está referente en su HQL no es una entidad.Por e.g.,

    HQL es "Seleccionar testidez de la testimiedad de testentidad", sin embargo, no hay clase de entidad llamada TABERENTIDAD definida

  2. o

    1. Usted ha definido la testidez, pero no se gestiona.Usted dice que otra operación en la entidad está funcionando, parece que probablemente esté usando el nombre incorrecto en su HQL. Sin embargo, si desea asegurarse de que la entidad se administra, puede habilitar el registro de depuración de hibernación y debe ver información como a continuación en la que puede ver la lista de clases administradas.

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

Otros consejos

El error debería provenir principalmente del query itself.deberías intentar asegurarte de que el nombre del Entity está ejecutando una solicitud es exactamente igual al nombre del class no me gusta el nombre del SQL table asociado a ello.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top