即使使用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
然后运行我的项目,它为我工作