Ebean增强忽略模型
Ebean enhancement ignores a model
我们正在使用 avaje-agentloader 来增强我们的 ebean。所有的 ebean 都在同一个包中。我们在我们的项目中包括加载器、代理和基础 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(...)
将包指定为 analyse/enhance
- 根本不指定并让加载程序分析所有内容。
- 我们在
Transformer.transform
处设置了一个断点,并且从未实际命中有问题的 bean。
注意:如果我们通过命令行上的代理加载程序或通过 maven 插件或 sbt 使用 ebean 代理,它就可以工作。
好的,所以我在 Ebean group on Google Groups as well, and Rob Bygrave responded, explaining a few things. (read his reply here)
上发布了这个
serverConfig.setXXX
与ebean增强无关
- 似乎在代理加载之前加载了 bean。
他是对的,确实,有问题的 model/bean 是在代理之前加载的。所以我们正在追查原因。
因此,问题是代理不会增强已经由 ClassLoader 加载的 beans(有道理)。他确实提到我们可以“更改 Ebean 代理以也支持 'class redefinition'”。
我们正在使用 avaje-agentloader 来增强我们的 ebean。所有的 ebean 都在同一个包中。我们在我们的项目中包括加载器、代理和基础 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(...)
将包指定为 analyse/enhance
- 根本不指定并让加载程序分析所有内容。
- 我们在
Transformer.transform
处设置了一个断点,并且从未实际命中有问题的 bean。
注意:如果我们通过命令行上的代理加载程序或通过 maven 插件或 sbt 使用 ebean 代理,它就可以工作。
好的,所以我在 Ebean group on Google Groups as well, and Rob Bygrave responded, explaining a few things. (read his reply here)
上发布了这个serverConfig.setXXX
与ebean增强无关- 似乎在代理加载之前加载了 bean。
他是对的,确实,有问题的 model/bean 是在代理之前加载的。所以我们正在追查原因。
因此,问题是代理不会增强已经由 ClassLoader 加载的 beans(有道理)。他确实提到我们可以“更改 Ebean 代理以也支持 'class redefinition'”。