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

如何让hbm2java生成依赖jakarta.persistence的Entity类?

解决hbm2java生成Entity导入jakarta.persistence而非javax.persistence的问题

核心原因

你当前使用的hibernate-tools-maven-plugin是针对JPA规范的javax版本,要生成Jakarta EE规范的Entity,必须切换到Jakarta专属的Hibernate Tools插件版本,同时调整依赖配置。

具体修改方案

1. 替换Maven插件为Jakarta版本

将原插件的artifactId改为Jakarta专属版本,并引入适配的Hibernate Core依赖:

<plugin>
    <groupId>org.hibernate</groupId>
    <!-- 替换为Jakarta专属插件 -->
    <artifactId>hibernate-tools-maven-plugin-jakarta</artifactId>
    <version>5.6.15.Final</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>hbm2java</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <packageName>PACKAGE_NAME</packageName>
        <outputDirectory>OUTPUT_DIR</outputDirectory>
        <ejb3>true</ejb3>
        <!-- 可选:强制指定Jakarta模板路径,确保生成逻辑正确 -->
        <templatePath>/org/hibernate/tool/hbm2x/templates/ejb3/jakarta</templatePath>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.32</version>
        </dependency>
        <!-- 引入Jakarta版本的Hibernate Core,保证插件依赖正确 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core-jakarta</artifactId>
            <version>5.6.15.Final</version>
        </dependency>
    </dependencies>
</plugin>

2. 调整hibernate.properties(可选优化)

若需要适配Jakarta规范的最新方言,可替换原方言配置:

hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

为什么之前的尝试无效

你引入的hibernate-jpamodelgen-jakarta是用于JPA静态元模型生成的工具,和hbm2java生成实体类的逻辑完全无关,因此无法改变实体类的导入包路径。

验证方法

执行mvn generate-sources命令后,检查生成的Entity类,导入语句应从import javax.persistence.*;变为import jakarta.persistence.*;。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 08:35:10