我正在编写测试JPA DAO的单元测试,我想自动加载javaagant(JPA类增强器),而不必指定-javaagent vm参数。
为实现这一点,我实现了一个@BeforeClass注释方法,如下所示:
String nameOfRunningVM = ManagementFactory.getRuntimeMXBean().getName();
String pid = nameOfRunningVM.substring(0, nameOfRunningVM.indexOf('@'));
VirtualMachine vm = VirtualMachine.attach(pid);
vm.loadAgent("openjpa-all-2.4.2.jar");
vm.detach();
emf = Persistence.createEntityManagerFactory("TEST_DB");
但是我仍然得到错误,告诉实体类在创建实体管理器工厂时没有得到增强。
org.apache.openjpa.persistence.ArgumentException:此配置不允许运行时优化,但在构建时或使用javaagent在类加载时未增强以下列出的类型:“)
我可以使用-javaagent参数,但我很好奇,如果有人可以与我们分享解决方案或想法,我会很高兴。
我正在使用JUnit和Java 8运行我的测试