hibernate - 如何在 gradle 中启用 Hibernate Bytecode 增强

标签 hibernate kotlin gradle

如何使用 gradle 启用插件?不幸的是,它不适用于我当前的设置:

build.gradle.kts:

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

tasks.withType<org.hibernate.orm.tooling.gradle.EnhanceTask>().configureEach {
    options.enableLazyInitialization = true
    options.enableDirtyTracking = true
    options.enableAssociationManagement = true
}

settings.gradle.kts:

pluginManagement {
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id == "org.hibernate.orm") {
                useModule("org.hibernate:hibernate-gradle-plugin:${requested.version}")
            }
        }
    }
}

我不确定它是否有效,如何检查插件是否已启用?没有控制台输出或类似的东西。还有一些功能不工作,当插件设置正确时应该工作。

最佳答案

解决插件依赖的好方法!
这是我认为使用 Kotlin DSL 配置插件的正确方法

hibernate {
    enhance(closureOf<org.hibernate.orm.tooling.gradle.EnhanceExtension> {
        enableLazyInitialization = true
        enableDirtyTracking = true
        enableAssociationManagement = true
        enableExtendedEnhancement = false
    })
}
这应该适用于 Java 代码,但并不总是适用于增量构建的 Kotlin。您还必须设置 Java 源以触发仪器。

关于hibernate - 如何在 gradle 中启用 Hibernate Bytecode 增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62121172/

相关文章:

kotlin - 如何在 kotlin 中创建这个协程?

Android 和 gradle 在签署应用程序时使用旧的不存在的 keystore

android - 如何在build.gradle文件中创建一个开放类?

java - Flutter:kotlin 在 java 安装中找不到所需的 jdk 工具

java - Intellij IDEA 12.1.6 - hibernate 不解析表名或列名

java - Spring + EntityManagerFactory +Hibernate 监听器 + 注入(inject)

java - Hibernate Envers 审计非审计实体

java - Hibernate OneToMany 与 OrderBy 生成无效 SQL

java - 错误 :Kotlin:Out-projected type 'JComboBox<*>' prohibits the use of '@BeanProperty public open fun setModel(p0: ComboBoxModel<E! >!)

android - fragment 实例被保留但子 fragment 没有重新附加