LoginSignup
0
0

jakarta.persistenceパッケージを使用していないのにjava.lang.NoClassDefFoundError: jakarta/persistence/EntityManagerが見つからないエラーが出たときの対処方法

Posted at

結論:HibernateとSpring Bootを使うときはバージョンに気を付けよう!!

解決方法

pom.xml
	<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <!-- この部分を削除<version>6.1.1.Final</version> -->
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

POMファイルからHibernateの明示的なバージョン指定を削除し、spring-boot-starter-data-jpaに含まれるバージョンを使用するようにした。

エラー内容

Caused by: java.lang.NoClassDefFoundError: jakarta/persistence/EntityManager
    at org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter.<init>(HibernateJpaVendorAdapter.java:74)

経緯

spring bootで開発中に jakarta.persistenceパッケージを使用していないのにjakarta/persistence/EntityManagerが見つからないとのエラーが出てしまう。

原因

Hibernateがバージョンによってはjakarta.persistence.EntityManagerを使用しているようで、

一方Spring Boot 2.7.11のspring-boot-starter-data-jpaの依存関係に含まれるHibernateのバージョンは、javax.persistence.EntityManagerを使用していたためのようだ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0