【问题标题】:"Bean class com.xxx.domain.Customer is not enhanced?" error in gradle/kotlin app“Bean 类 com.xxx.domain.Customer 没有增强?” gradle/kotlin 应用程序中的错误
【发布时间】:2018-04-11 14:38:07
【问题描述】:

我正在尝试在带有 Gradle 的 Kotlin 应用程序中使用 Ebean。

我在 GitHub 上关注了许多示例,并且我很确定我的代码没问题,但我不断收到此错误:

Caused by: java.lang.IllegalStateException: Bean class com.xxx.domain.Customer is not enhanced?
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1413)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1285)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1207)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:710)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:325)
 at io.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:141)
 at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:130)
 at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:79)
 at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:44)
 at io.ebean.EbeanServerFactory.create(EbeanServerFactory.java:55)
 at io.ebean.Ebean$ServerManager.getWithCreate(Ebean.java:201)
 at io.ebean.Ebean$ServerManager.<init>(Ebean.java:159)
 ... 6 more

这是我的 build.gradle 代码:

buildscript {
    ext.kotlin_version = '1.2.31'


    repositories {
        mavenCentral()
    }


    dependencies {
        classpath "io.ebean:ebean-gradle-plugin:10.2.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}


apply plugin: 'kotlin'
apply plugin: 'kotlin-kapt'
apply plugin: 'application'
apply plugin: 'ebean'


mainClassName = 'com.xxx.HelloWorldKt'


defaultTasks 'run'


repositories {
    mavenCentral()
}


dependencies {
    kapt "io.ebean:kotlin-querybean-generator:10.1.2"

    compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

    compile "io.ebean:ebean:10.3.1"
    compile "io.ebean:ebean-querybean:10.3.1"

    testCompile 'junit:junit:4.11'
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
}


kapt {
    generateStubs = true
}


sourceSets {
    main.kotlin.srcDirs += [file("$buildDir/generated/source/kaptKotlin/main")]
}

我在 IntelliJ 中安装了 2 个插件。

  • Ebean 10.x 增强功能
  • Ebean 增强

两者都被激活。

这是我的 Bean 代码

import io.ebean.Model
import javax.persistence.Entity
import javax.persistence.Id

@Entity
class Customer : Model() {

    @Id
    var id: Long = 0

    var name: String = ""

    var version: Long = 0
}

我尝试使用“应用程序配置”和“Gradle 配置”运行应用程序。两者都犯同样的错误。

我可以看到 QCustomer 生成的代码在那里,但我一直收到这个错误。

我做错了什么?

谢谢!

【问题讨论】:

    标签: gradle orm kotlin ebean


    【解决方案1】:

    有 4 件事要检查这个问题:

    1) 由于我使用相同的代码进行了多次测试,我的“build”文件夹中充满了之前生成的代码,并且“Rebuild”函数没有清理它。我做了一个删除自己+完整的“重建”,它删除了很多错误消息。但是还缺少其他东西。

    2) 确保“resource”文件夹中的文件“ebean.mf”具有正确的“entity-packages”和“transactional-packages”。就我而言,它是com.xxx.domain。这是需要改进并包含您的模型的文件夹。

    3) 如果您使用“应用程序”配置设置(使用 IDE 启动应用程序),请确保安装并激活正确的 Ebean Enhancement 插件。就我而言,我只需要 Ebean 10.x 增强插件。

    4) 如果您使用“gradle”配置设置,请确保 sourceSets 设置如下:

    sourceSets {
        main.kotlin.srcDirs += [file("$buildDir/generated/source/kaptKotlin/main")]
    }
    

    希望有所帮助。我花了很多时间在这上面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 2021-05-17
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2011-09-11
      相关资源
      最近更新 更多