【问题标题】:java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery - Hibernate Errorjava.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery - 休眠错误
【发布时间】:2015-03-30 15:05:33
【问题描述】:

创建休眠会话工厂时抛出了上述异常。

在应用程序 lib 文件夹中有 hibernate-jpa-2.1-api 和 javax.persistence.2.1.0。我可以在两个 jar 中看到 NamedStoredProcedureQuery 类。但是我收到了 classnotfoundexception 的运行时错误。有什么建议吗?

【问题讨论】:

    标签: java hibernate sessionfactory hibernate-session


    【解决方案1】:

    NamedStoredProcedureQuery 类在 hibernate-jpa-2.1-api jar 中可用。但是这个 jar 在运行时引用了其他一些 jar。所以我没有在编译时出错,也没有在运行时出错。我刚刚通过 maven 存储库添加了其他休眠库。最初我只使用了休眠核心。现在 artifactID 是 hibernate-core、hibernate-validator、hibernate-commons-annotations、hibernate-jpa-2.0-api 和 hibernate-entitymanager。

    【讨论】:

      【解决方案2】:

      我有一个不理想的解决方案。我最终使用了 hibernate-core 3 (3.6.10),它不会引发同样的错误。

      我从 CodeRanch 的 Mario Schwaiger 那里得到了这个想法,这是一个不同但相似的类未找到异常:http://www.coderanch.com/t/509836/ORM/databases/Hibernate-java-lang-ClassNotFoundException-javax

      详细信息:我正在做一些稍微不同的事情 - 将 Hibernate 4 与 Struts 1(而不是 Spring)集成,但遇到了相同的 NamedStoredProcedureQuery 类未找到问题。添加 hibernate-validator 会引发不同的错误。其他对我不起作用的事情是:添加 hibernate-entitymanager、添加 javax.persistence 以及在 Java 8 和 7 之间更改 tomcat 或 eclipse java 版本。

      您需要在 Hibernate 3 和 4 之间以不同的方式实例化 sessionfactory。

      希望有人会为您的 Spring 问题发布更好的解决方案。

      【讨论】:

        【解决方案3】:

        您必须将 hibernate-entitymanager 添加到您的类路径中。

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        

        【讨论】:

          猜你喜欢
          • 2017-09-11
          • 1970-01-01
          • 2020-11-14
          • 1970-01-01
          • 2012-05-14
          • 2012-04-19
          • 2014-03-25
          • 2011-12-03
          相关资源
          最近更新 更多