hibernate - InstantiationException:当使Entity字段在Kotlin中不可为空时,没有用于实体的默认构造函数

标签 hibernate spring-boot kotlin

我有一个项目实体(如下所示)。当我尝试改变

var fullName: String?= null

至:
var fullName: String,

我突然从Hibernate收到InstantiationException:
org.hibernate.InstantiationException: No default constructor for entity:

在此之前,没有任何问题。可能出什么问题了?这是Entity类:
package no.inmeta.ris.project.model.entity

import org.hibernate.annotations.GenericGenerator
import java.util.*
import javax.persistence.*

@Entity
data class Project (

    @Id
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    @Column(columnDefinition = "BINARY(16)")
    var id : UUID? = null,

    var fullName: String,

    var shortName: String? = null,

    var prevRefId: String? = null,

    var startDate: Date? = null,

    var endDate: Date?  = null,

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "Associated_Projects",
        joinColumns = [JoinColumn(name = "associated_project")],
        inverseJoinColumns = [JoinColumn(name = "second_associated_project") ])
    var associatedProjects: List<Project?> = mutableListOf(),

    var shortDescription: String? = null,

    var summary: String?  = null,

    var url: String? = null,

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "Project_Types",
        joinColumns = [JoinColumn(name = "project_id")],
        inverseJoinColumns = [JoinColumn(name = "type_id") ])
    var type: List<Type?> = mutableListOf()
    )

最佳答案

为fullName参数提供默认值或使其可为空。

在您的代码中,它没有默认值,因此在生成的Java字节码中,Project类将没有构造函数而没有参数-它至少需要1个参数才能初始化fullName字段。

关于hibernate - InstantiationException:当使Entity字段在Kotlin中不可为空时,没有用于实体的默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59770113/

相关文章:

java - Hibernate/JPA 使用提供的 Id 进行保存

java - 谷歌应用程序引擎的 ORM (java)

android - 三星 Android 10 BLE MTU>23 问题

android - 导航组件未替换当前 fragment Activity

java - 在 createNativeQuery 中更新查询

java - 如何统计Spring项目中所有带有@Controllers属性的类

spring - 在 Spock 规范中注入(inject)时,WebApplicationContext 不会 Autowiring

java - 有什么方法可以知道在 Spring 中从父类使用什么 bean 吗?

java - 更新到最新的 Spring boot 版本 spring-boot-starter-parent 2.6.2 后,我的测试停止执行

android - 无法创建ViewModel类的实例