سؤال

أنا على الحصول على الخطأ التالي إلى أبسط الاستعلام:

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> نعمل مع عدم وجود أخطاء.

هل كانت مفيدة؟

المحلول

هناك احتمالان الذي يتبادر إلى ذهني

  1. اسم كنت تقصد في HQL ليس كيانا.على سبيل المثال,

    HQL هو "تحديد testEntity من TestEntity testEntity" , ومع ذلك لا يوجد كيان الطبقة اسمه TestEntity محددة

أو

  1. كنت قد حددت 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 المرتبطة بها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top