تكوين السبات على HQL
-
21-12-2019 - |
سؤال
أنا على الحصول على الخطأ التالي إلى أبسط الاستعلام:
org.hibernate.hql.internal.ast.QuerySyntaxException: <table_name> is not mapped [<query_string>]
في hibernate.cfg.xml
لدي الممتلكات ؛
<property name="current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property>
ThreadLocalSessionContext
هو في org.hibernate.context.internal
من Hibernate 4.x-hibernate-core-4.2.6.Final.jar
.
كل شيء آخر على السبات تعمل بشكل جيد.ومع ذلك ، أنا لا يجري قادرة على تشغيل استعلام.
ما أنا في عداد المفقودين ؟
شكرا على المساعدة.
//=========================
تحرير:
<table_name>
بأنها كيان في hibernate.cfg.xml
و كل شيء ولكن HQL-بما في ذلك التحديثات على <table_name>
نعمل مع عدم وجود أخطاء.
المحلول
هناك احتمالان الذي يتبادر إلى ذهني
اسم كنت تقصد في HQL ليس كيانا.على سبيل المثال,
HQL هو "تحديد testEntity من TestEntity testEntity" , ومع ذلك لا يوجد كيان الطبقة اسمه TestEntity محددة
أو
كنت قد حددت TestEntity ولكن ليس إدارتها.أنت تقول أن عملية أخرى في كيان نعمل يبدو ربما تستخدم الاسم في HQL.ومع ذلك إذا كنت تريد أن تكون على يقين من أن الكيان المدارة ، يمكنك تمكين الإسبات تسجيل التصحيح و يجب أن ترى المعلومات مثل أدناه والتي يمكنك ان ترى قائمة من دروس المدارة.
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].
نصائح أخرى
الخطأ يجب أن معظمها تأتي من query itself
.يجب أن تحاول التأكد من اسم Entity
يتم تنفيذ الطلب هو بالضبط مثل اسم class
ليس مثل اسم SQL table
المرتبطة بها.