【问题标题】:org.hibernate.HibernateException: could not instantiate QueryTranslatorFactory: org.hibernate.hql.classic.ClassicQueryTransactionFactoryorg.hibernate.HibernateException:无法实例化 QueryTranslatorFactory:org.hibernate.hql.classic.ClassicQueryTransactionFactory
【发布时间】:2011-07-31 17:57:26
【问题描述】:

为什么当我从 hql 编辑器运行查询时会发生此异常

org.hibernate.HibernateException:无法实例化 QueryTranslatorFactory:org.hibernate.hql.classic.ClassicQueryTransactionFactory
    在 org.hibernate.cfg.SettingsFactory.createQueryTranslatorFactory(SettingsFactory.java:391)
    在 org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:222)
    在 org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
    在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
    在 org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
    在 org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:264)
    在 java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    在 java.lang.Class.forName0(本机方法)
    在 java.lang.Class.forName(Class.java:169)
    在 org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
    在 org.hibernate.cfg.SettingsFactory.createQueryTranslatorFactory(SettingsFactory.java:388)
    ... 7 更多
引起:java.lang.ClassNotFoundException:org.hibernate.hql.classic.ClassicQueryTransactionFactory
    在 java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    在 java.security.AccessController.doPrivileged(本机方法)
    在 java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    在 java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    在 java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    在 org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:262)
    ... 13 更多

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    当我从休眠 3 移动到休眠 4 时,我遇到了同样的异常,但是当我尝试更改

    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    

    <property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property>
    

    它对我有用。 希望对你有所帮助。

    【讨论】:

      【解决方案2】:

      新的 APIS 有微小的变化。 请将属性值替换为

      org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory.
      

      注意:引入了名为“internal”层次结构的新包。

      【讨论】:

        【解决方案3】:

        经典查询翻译器工厂的正确名称是org.hibernate.hql.classic.ClassicQueryTransactorFactory,在属性中使用它而不是不正确的名称(org.hibernate.hql.classic.ClassicQueryTransactionFactory)。

        【讨论】:

          【解决方案4】:

          正确的名字是

          org.hibernate.hql.classic.ClassicQueryTranslactorFactory

          请注意,上一条评论中缺少 'l'

          【讨论】:

          • 翻译器?以前从未听说过这个词。你的意思是“翻译”吗?
          猜你喜欢
          • 1970-01-01
          • 2019-11-23
          • 2013-04-02
          • 1970-01-01
          • 2022-01-03
          • 2016-06-09
          • 2020-10-26
          • 2016-11-22
          相关资源
          最近更新 更多