javax.persistence不包含在spring数据jpa中?

aamkag61  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(166)

我刚刚创建了一个带有此依赖项的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依赖项????

nimxete2

nimxete21#

Spring Data JPA本身并不是JPA规范的实现。它是构建在JPA之上的抽象,需要JPA实现(通常是Hibernate)才能运行。JPA实现提供javax.persistence类。因此,如果只依赖org.springframework.data:spring-data-jpajavax.persistence类将不在类路径上。
如果你使用的是Sping Boot 的Data JPA启动器(org.springframework.boot:spring-boot-starter-data-jpa),它同时依赖于Spring Data JPA和Hibernate,而Hibernate依赖于javax.persistence API,这使得它的类可以被你的应用程序代码使用。

相关问题