以编程方式加载openjpa javaagent - 运行时优化

时间:2018-04-17 13:03:09

标签: openjpa

我正在编写测试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运行我的测试

0 个答案:

没有答案