You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse JPA Facet生成实体导入错误,如何配置默认持久化类?

Eclipse 2023-03生成JPA实体时导入语句错误(javax vs jakarta)

我在使用Eclipse 2023-03从现有数据库生成JPA实体时遇到问题:添加JPA Facet后生成的类结构正确,但导入语句错误,生成的是import javax.persistence.*;,而预期应为import jakarta.persistence.*;。我的项目是Spring Boot 3.0.6 starter项目,pom.xml依赖如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>it.danilocalzetta</groupId>
    <artifactId>ifapi</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ifapi</name>
    <description>If api</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

生成的实体类示例:

import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name="teams")
@NamedQuery(name="Team.findAll", query="SELECT t FROM Team t")
public class Team implements Serializable {

预期的实体类示例:

import java.io.Serializable;
import jakarta.persistence.*;

@Entity
@Table(name="teams")
@NamedQuery(name="Team.findAll", query="SELECT t FROM Team t")
public class Team implements Serializable {

解决方案:配置JPA Facet使用Jakarta Persistence

  • 右键项目 → Properties
  • 左侧菜单选择 Project Facets,找到JPA选项,点击右侧的Configure...
  • 在JPA配置窗口中,修改Platform下拉选项:
    • 选择支持Jakarta Persistence的平台,比如Hibernate 6.x(Spring Boot 3默认适配该版本)
    • 若列表中无对应平台,点击**Download...**下载安装
  • 确认Default persistence provider选择的是支持Jakarta的实现(如Hibernate 6.x)
  • 点击Apply and Close,重新生成JPA实体

补充:修改persistence.xml(若存在)

如果项目中有persistence.xml文件,确保其命名空间使用Jakarta规范:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="3.0" xmlns="https://jakarta.ee/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd">
    <!-- 此处配置你的persistence单元 -->
</persistence>

内容的提问来源于stack exchange,提问作者danilonet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:50:40