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

如何使用Hibernate Gradle插件转换遗留hbm.xml文件?

用Hibernate Gradle插件转换旧hbm.xml适配Hibernate 6

1. 引入插件

在build.gradle(Groovy DSL)中添加插件依赖,版本必须和项目使用的Hibernate核心版本完全一致:

plugins {
    id 'org.hibernate.orm' version '6.4.4.Final'
}

如果是Kotlin DSL:

plugins {
    id("org.hibernate.orm") version "6.4.4.Final"
}

旧版Gradle可使用buildscript方式引入:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.hibernate.orm:hibernate-gradle-plugin:6.4.4.Final'
    }
}

apply plugin: 'org.hibernate.orm'

2. 配置TransformHbmXmlTask

注册并配置转换任务,指定旧文件的输入目录和转换后文件的输出目录:
Groovy DSL示例:

tasks.register('transformHbmXml', org.hibernate.tool.gradle.task.TransformHbmXmlTask) {
    // 旧hbm.xml的存放目录,根据项目实际结构修改
    inputDirectory = file('src/main/resources/legacy-hbm')
    // 转换后文件的输出目录,建议放在build目录下,避免覆盖原文件
    outputDirectory = file("$buildDir/generated/resources/hibernate6-hbm")
    // 可选:指定项目使用的Hibernate方言,比如MySQL8Dialect
    // dialect = 'org.hibernate.dialect.MySQL8Dialect'
}

// 让资源处理任务依赖转换任务,确保编译前完成转换
processResources.dependsOn(transformHbmXml)

Kotlin DSL示例:

tasks.register<org.hibernate.tool.gradle.task.TransformHbmXmlTask>("transformHbmXml") {
    inputDirectory = file("src/main/resources/legacy-hbm")
    outputDirectory = file("$buildDir/generated/resources/hibernate6-hbm")
    // dialect.set("org.hibernate.dialect.MySQL8Dialect")
}

tasks.processResources {
    dependsOn(tasks.named("transformHbmXml"))
}

3. 执行与验证

  • 单独执行转换任务:运行./gradlew transformHbmXml
  • 构建项目时自动触发:运行./gradlew build,processResources阶段会先执行转换
  • 转换前务必备份所有旧hbm.xml文件,转换完成后检查输出目录的文件,确认语法适配Hibernate 6后,再替换原文件或调整项目的配置文件加载路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:32:46