我刚刚创建了一个带有此依赖项的maven项目
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
但我发现这些类都找不到
import javax.persistence.*
所以我必须将依赖项更改为
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
我觉得很奇怪,因为上次更新是从Aug 21, 2017
没有包含javax.persistence的Spring依赖项????
1条答案
按热度按时间nimxete21#
Spring Data JPA本身并不是JPA规范的实现。它是构建在JPA之上的抽象,需要JPA实现(通常是Hibernate)才能运行。JPA实现提供
javax.persistence
类。因此,如果只依赖org.springframework.data:spring-data-jpa
,javax.persistence
类将不在类路径上。如果你使用的是Sping Boot 的Data JPA启动器(
org.springframework.boot:spring-boot-starter-data-jpa
),它同时依赖于Spring Data JPA和Hibernate,而Hibernate依赖于javax.persistence
API,这使得它的类可以被你的应用程序代码使用。