即使使用noarg插件,也没有使用Kotlin的JPA实体的默认构造函数

我已经读过,你需要为实体类使用kotlin-maven-noarg编译器插件,以便它生成默认参数少的构造函数。

但是应用程序不会以下列错误开始:

没有实体的默认构造函数

你能告诉我我做错了什么吗?

pom.xml中:

  4.0.0 {...}  src/main/java   src/main/resources   src/test/java   src/test/resources     maven-compiler-plugin 3.1  1.8 1.8    org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version}   compile compile  compile    test-compile test-compile  test-compile      org.apache.maven.plugins maven-compiler-plugin   compile compile  compile    testCompile test-compile  testCompile      kotlin-maven-plugin org.jetbrains.kotlin ${kotlin.version}   jpa   jpa:annotation=javax.persistence.Entity     org.jetbrains.kotlin kotlin-maven-noarg ${kotlin.version}       {...} 4.12 1.1.0  {...}  org.jetbrains.kotlin kotlin-stdlib ${kotlin.version}   org.jetbrains.kotlin kotlin-test ${kotlin.version} test   org.jetbrains.kotlin kotlin-reflect ${kotlin.version}    

测试课:

 @RunWith(SpringJUnit4ClassRunner::class) @ContextConfiguration(classes = arrayOf(VedicaConfig::class)) class InitStructures { private var vedicaDBInit: VedicaDBInit? = null @Before fun init() { vedicaDBInit = VedicaDBInit() } @Test fun initClientFolders() { } } 

我使用的Intellij IDEA与Kotlin 1.1.0,所以对于部署,我只需点击调试/运行与选择的Tomcat运行配置和运行测试我只需右键单击测试类,并单击运行/调试。

在运行测试之前,您是否尝试过运行Maven compile目标? 我发现Intellij的Kotlin运行/测试的默认配置不会激发Maven插件,因此不会应用no-arg插件。

尝试运行你的compile目标,然后再次运行你的测试。

这是一个Intellij错误,并已在下列版本中修复:

  • IDEA 171.2455 + Kotlin插件1.1.0-dev-6111。
  • IDEA 171.2272.14(EAP)+ Kotlin插件1.1.0-beta-17。

详情请点击: https : //youtrack.jetbrains.com/issue/KT-15686

我和intellij / gradle / kotlin有类似的问题。

在我的情况下,我总是通过intellij编辑器Run-Icon调用main方法来启动web应用程序。 我不知道什么是错误的,但不知何故构建过程没有正确完成。

相反,如果我通过调用./gradlew bootRun从一个控制台启动web ./gradlew bootRun一切正常!

我有同样的问题。 我正在使用gradle build btw。

对我来说是什么工作,而不是运行intellij提供的默认运行配置,我创建了一个types为gradle的新的运行配置

Gradle project选择了我的项目,并在Tasks选择了bootRun

然后运行我的项目,它为我工作

在这里输入图像说明