有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java HibernatePersistenceProvider:不支持的专业。次要版本52.0 intellij

我找了这么多问题

How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

但答案对我来说并不适用

我使用的是jdk 1.7,我将编译器设置为1.7.0_79,这意味着是java 7,但当我运行时,仍然会收到错误,我将项目字节码版本设置为1.7,但消息相同

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/hibernate/jpa/HibernatePersistenceProvider : Unsupported major.minor version 52.0

当尝试加载 坚持不懈xml在这一行

    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

在这一行的java代码中

    EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("sample");

共 (4) 个答案

  1. # 1 楼答案

    我在使用Hibernate进行项目时遇到了同样的问题:Caused by: java.lang.UnsupportedClassVersionError: org/hibernate/jpa/HibernatePersistenceProvider : Unsupported major.minor version 52.0

    更新IntelliJ和Maven项目设置(如herehere所述)以使用相同的Java版本进行编译和运行并不能解决问题

    正如前面Adrian Shum所指出的,如果你想使用Java 7,你必须检查与Hibernate相关的库,因为Hibernate 5.2 and later versions require at least Java 1.8Hibernate System Requirements

    在我的例子中,降低POM文件中的库版本通过更改

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.6.Final</version>
    </dependency>
    

    进入

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.1.4.Final</version>
    </dependency>
    
  2. # 2 楼答案

    “Unsupported major.minor version”通常出现,因为编译java程序时使用的java版本比运行它时使用的版本大

    因此,在您的例子中,您使用java 7编译了应用程序,但您可能正在尝试使用java 6或更小的版本来运行它

    更改运行应用程序的java版本,使其与编译时使用的版本相匹配(本例中为7)

  3. # 3 楼答案

    我也有同样的问题,使用JDK7编译它的方法是将hibernate jpamodelgen添加到我的pom中。xml

    <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>5.x.x.Final</version>
    </dependency>
    

    添加此选项可以解决问题,只需选择您正在使用的版本即可

  4. # 4 楼答案

    由于hibernate core 5.2及更高版本不支持JDK 1.7。所以请将maven依赖项更改为5.1。JDK 1.7的x和更低版本。但在所有较低版本的hibernate内核中,都缺少所有类的“org.hibernate.jpa”包

    如果您需要hibernate持久性提供程序,则获取未找到类的异常。因此,您应该添加一个新的依赖项

    <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.1.4.Final</version>
    </dependency>
    
    • 添加此依赖项后,如果仍然出现“未找到类”异常,请为JPA存储库添加@EnableJpaRepositories