HibernatePersistenceProvider:不支持的major.minor版本52.0 intellij

时间:2016-09-15 14:01:30

标签: java hibernate intellij-idea jdk1.7

我搜索了这个问题

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

尝试加载时发生此异常 此行上的persistence.xml

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

并在此行的java代码中

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

4 个答案:

答案 0 :(得分:4)

我在使用Hibernate处理项目时遇到了同样的问题:session_start(); error_reporting(-1); ini_set('display_errors', 1); include 'vendor/autoload.php'; use Facebook\FacebookApp; use Facebook\Facebook; use Facebook\FacebookRequest; $app_id = 'xxxxxxxxxxxx'; $psswd = 'xxxxxxxxxxxx'; $group_id = 'xxxxxxxxxxxx'; $fb = new Facebook([ 'app_id' => $app_id, 'app_secret' => $psswd, 'default_graph_version' => 'v2.4', ]); $request = $fb->request('POST', '/'.$group_id.'/feed',array('message'=>'This is a test message')); // Send the request to Graph try { $response = $fb->getClient()->sendRequest($request); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $graphNode = $response->getGraphNode(); print_r($graphNode);

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

如前Caused by: java.lang.UnsupportedClassVersionError: org/hibernate/jpa/HibernatePersistenceProvider : Unsupported major.minor version 52.0所述,如果您想使用Adrian Shum,则必须检查Java 7相关的库,因为HibernateHibernate System Requirements)。< / p>

就我而言,通过更改

,降低POM文件中的库版本可以解决问题
Hibernate 5.2 and later versions require at least Java 1.8

进入

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

&#34;不支持的major.minor版本&#34;通常会出现,因为您使用比您尝试运行它的java更大版本的java编译java程序。

因此,在您的情况下,您使用java 7编译了应用程序,但您可能正在尝试使用java 6或更小版本运行它。

更改运行应用程序的java版本以匹配您正在编译的版本(在您的情况下为7)。

答案 3 :(得分:0)

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

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

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