我们正在使用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代理,它就可以工作。
答案 0 :(得分:0)
好的,我也在Google网上论坛的Ebean group上发布了此消息,并且 Rob Bygrave 做出了回应,并解释了一些问题。 (阅读他的回复here)
serverConfig.setXXX
与ebean增强无关。他是对的,事实上有问题的模型/ bean正在代理之前加载。所以我们正在追查原因。
因此,问题是代理不会增强已经由ClassLoader加载的bean(有意义)。他确实提到我们可以" 更改Ebean代理也支持'类重新定义' "。