gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:42:20 35 4
gpt4 key购买 nike

我读到您需要 kotlin-maven-noarg 实体类编译器插件,以便它生成无默认参数的构造函数。

但应用程序没有启动并出现以下错误:

No default constructor for entity

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

pom.xml:

    <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
{...}
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>

<testSourceDirectory>src/test/java</testSourceDirectory>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>

<configuration>
<compilerPlugins>
<plugin>jpa</plugin>
</compilerPlugins>

<pluginOptions>
<option>jpa:annotation=javax.persistence.Entity</option>
</pluginOptions>
</configuration>

<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-noarg</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>

</plugins>
</build>

<properties>
{...}
<junit.version>4.12</junit.version>
<kotlin.version>1.1.0</kotlin.version>
</properties>

{...}

<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test</artifactId>
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>

</dependencies>

</project>

测试类:

@RunWith(SpringJUnit4ClassRunner::class)
@ContextConfiguration(classes = arrayOf(VedicaConfig::class))
class InitStructures {
private var vedicaDBInit: VedicaDBInit? = null

@Before
fun init() {
vedicaDBInit = VedicaDBInit()
}

@Test
fun initClientFolders() {
}
}

我正在使用带有 Kotlin 1.1.0 的 Intellij IDEA,因此对于部署,我只需单击调试/运行并选择 Tomcat 运行配置,而对于运行测试,我只需右键单击测试类并单击运行/调试。

最佳答案

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

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

关于spring - 即使使用 noarg 插件,也没有使用 Kotlin 的 JPA 实体的默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43170391/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com