如何使用gradle增强openJPA的类

如何使用gradle增强openJPA的类,gradle,openjpa,Gradle,Openjpa,我一直在设置一个简单的测试程序 -蚀 -gradle(eclipsebuildship插件) -openjpa 当我尝试运行我的应用程序时,当我调用entityManager.persist(…)方法时,会出现以下错误: 线程“main”org.apache.openjpa.persistence.ArgumentException中出现异常:尝试强制转换实例“test.jpa”。Person@27c6e487“要持久化失败。确保它已得到增强。 失败对象:test.jpa。Person@27c6

我一直在设置一个简单的测试程序 -蚀 -gradle(eclipsebuildship插件) -openjpa

当我尝试运行我的应用程序时,当我调用entityManager.persist(…)方法时,会出现以下错误:

线程“main”org.apache.openjpa.persistence.ArgumentException中出现异常:尝试强制转换实例“test.jpa”。Person@27c6e487“要持久化失败。确保它已得到增强。 失败对象:test.jpa。Person@27c6e487

这个程序很简单,它只有一个实体(Person.java)。 My persistence.xml如下所示:


org.apache.openjpa.persistence.PersistenceProviderImpl
我使用了RuntimeUnenhancedClasses=unsupported和DynamicHancedAgent=false,因为这是apache推荐的。但我尝试过使用“supported”和“true”,但仍然得到了相同的错误(对于openjpa 2.1.0版-对于更高版本,我得到了一个带有“supported/true”的LinageError)

我尝试过jpa的不同版本,目前使用的是2.4.2

我已经为gradle脚本做好了准备,以提高我的课堂水平,我试过了

  • 'at.schmutterer.oss.gradle:gradleOpenJPA:0.2.0'

  • “neva.openjpa”

还有一些,但我不能提高这个班

当然,我已经做了很长一段时间的好事了。我很感激我能遵循的任何想法


提前谢谢

以防万一其他人也有同样的挣扎。我找到了解决这个问题的方法:

TomEE提供JPA和所需的一切。eclipse“gradle buildship”插件可用于编译代码。因此,以下组件的组合对我来说非常好:

  • apache-tomee-plus-7.0.2
  • tomcat v8.5服务器(指向apache tommee安装)
  • 动态Web项目(使用动态Web模块3.1)
  • Java运行时环境v1.8
gradle脚本简化为:

apply plugin: 'war'

repositories {
    mavenCentral()
}

dependencies {
    providedCompile "javax:javaee-api:7.0"
}

我想它也适用于Tomee1.7.x和JavaEEAPI:6.0,但我还没有尝试过

apply plugin: 'war'

repositories {
    mavenCentral()
}

dependencies {
    providedCompile "javax:javaee-api:7.0"
}