【问题标题】:Gradle EBean Enhancement - Entity not enhancedGradle EBean 增强 - 实体未增强
【发布时间】:2014-04-02 21:06:30
【问题描述】:

我已经在谷歌上搜索了几个小时,也许我对它的理解还不够真实地描述它,也许我的谷歌搜索天赋在过去一天已经下降了。

我已经从 2.8.1 升级到 EbeanORM 3.2.5,终于意识到他们跟上了,但只是更改了工件名称。话虽如此,我得到了增强错误。

原因:javax.persistence.PersistenceException:实体类型类 com.bloomhealthco.fixtures.entities.ProductFamilyProductGroupRelationEntity 不是增强的实体 bean。 Ebean 不再支持子类化

我正在使用 Gradle,因此 Maven 修复不适合我。我找到了 avaje-agentloader 并尝试实现它:

buildscript{
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.avaje:avaje-agentloader:1.1.1"
    }
}

import org.avaje.agentloader.AgentLoader

task fixturesTests(type: Test) {
    description "Executes all fixtures tests."
    AgentLoader.loadAgentFromClasspath("avaje-ebeanorm-agent","debug=1");

    outputs.upToDateWhen { false }
}

我也尝试将它放入我的测试设置中。目前我只是在测试实体是否按预期工作。

import org.avaje.agentloader.AgentLoader

class EntitySpec extends Specification {

    setupSpec() {
        AgentLoader.loadAgentFromClasspath("avaje-ebeanorm-agent","debug=1");
    }

    .........
    .........
    .........
}

我没有正确创建对代理加载器的引用,还是我什至不在正确的页面上?

我也不太明白什么是增强。

【问题讨论】:

  • 自 4 月以来有任何更新吗?我也有同样的问题。
  • 我没有。我只是使用了不需要增强实体的旧版 eBean。
  • Gradle 插件在运行测试之前不会增强。

标签: java jpa gradle persistence ebean


【解决方案1】:

我认为您缺少一两个依赖项。我的依赖块如下所示:

dependencies {
    compile 'org.avaje.ebeanorm:avaje-ebeanorm:4.1.4'
    compile 'org.avaje:avaje-agentloader:1.1.1'
    compile 'org.avaje.ebeanorm:avaje-ebeanorm-agent:4.1.5'
}

看起来您有代理加载器库,但我没有看到代理库。您可以尝试添加它并查看异常是否消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    相关资源
    最近更新 更多