kotlin-jpa 插件不生成默认构造函数
Posted
技术标签:
【中文标题】kotlin-jpa 插件不生成默认构造函数【英文标题】:kotlin-jpa plugin not generating default constructor 【发布时间】:2019-08-09 06:24:09 【问题描述】:我正在使用 kotlin-jpa 为我的 kotlin 实体生成默认构造函数,但是没有生成:
我刚用过:
id("org.jetbrains.kotlin.plugin.jpa") version "1.3.21"
@Entity
data class PlanSubscription(@Id ...
但是使用 kotlin-jpa 插件的事件没有生成构造函数:
No default (no-argument) constructor for class
【问题讨论】:
您不应该为实体使用数据类:toString/hashCode/equals 不适合实体,实体应该开放以支持基于动态代理的延迟加载。 @Guilherme Torres Castro 问题的状态如何? @Skizo-ozᴉʞS 抱歉耽搁了。我犯了一个错误并粘贴了错误的插件kotlin.jvm
而不是kotlin jpa
。我编辑问题以反映我已经在使用 kotlin jpa 插件,但没有生成无参数构造函数。
您需要定义一个空的构造函数,能否请您为您的类添加一个默认构造函数并再试一次?
@Skizo-ozᴉʞS 但这就是 kotlin-jpa 应该做的事情
【参考方案1】:
我有一个非常相似的问题。虽然不使用数据类的建议可能有用也可能没有用,但我发现有问题的是 jpa 插件的版本,请尝试使用 1.3.41 版
id "org.jetbrains.kotlin.plugin.jpa" version "1.3.41"
【讨论】:
【参考方案2】:你需要设置
`<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>1.1.0</version>
</dependency>`
在你的 pom.xml 中
【讨论】:
以上是关于kotlin-jpa 插件不生成默认构造函数的主要内容,如果未能解决你的问题,请参考以下文章