Ebean增强忽略了一个模型

时间:2015-04-22 19:03:07

标签: java sbt ebean

我们正在使用avaje-agentloader来增强我们的ebeans。所有的ebeans都在同一个包中。我们包括装载机,代理商和我们项目中的基础ebean库(通过sbt):

"org.avaje" % "avaje-agentloader" % "1.1.2",
"org.avaje.ebeanorm" % "avaje-ebeanorm" % "4.5.5",
"org.avaje.ebeanorm" % "avaje-ebeanorm-agent" % "4.5.2",

但是,当加载程序运行增强功能时,它会跳过一个ebean。

每个ebean都注明@Entity并扩展com.avaje.ebean.Model。增强的那些和没有增强的那些之间似乎没有差异。没有额外的包含或扩展等。

基本上,我想知道过去是否有人遇到过这个问题,或者有任何见解。

我们尝试过的事情:

  • 通过serverConfig.setClasses(...)
  • 指定要增强的实际课程
  • 指定要通过serverConfig.addPackage(...)setPackages(...)
  • 进行分析/增强的内容
  • 根本没有指定并且让加载器分析所有。
  • 我们在Transformer.transform处设置了一个断点,并且所讨论的bean实际上从未被击中。

注意:如果我们通过命令行上的代理加载器,或通过maven插件或sbt使用ebean代理,它就可以工作。

1 个答案:

答案 0 :(得分:0)

好的,我也在Google网上论坛的Ebean group上发布了此消息,并且 Rob Bygrave 做出了回应,并解释了一些问题。 (阅读他的回复here

  1. serverConfig.setXXX与ebean增强无关。
  2. 看起来在代理加载之前正在加载bean。
  3. 他是对的,事实上有问题的模型/ bean正在代理之前加载。所以我们正在追查原因。

    因此,问题是代理不会增强已经由ClassLoader加载的bean(有意义)。他确实提到我们可以" 更改Ebean代理也支持'类重新定义' "。