Kotlin
spring-boot
entity

KotlinでInstantiationException: No default constructor for entityになった時の解決策

Exceptionが発生するコード
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id

@Entity
data class Car (var brand: String,
                var model: String,
                var color: String,
                var registerNumber: String,
                var year: Int,
                var price: Int,
                @Id
                @GeneratedValue(strategy = GenerationType.AUTO)
                var id: Long)

デフォルト値を設定しないとエラーが発生するとのことなので、各フィールドにデフォルト値を設定したらエラーが解消した。

Exceptionが発生しないコード
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id

@Entity
data class Car (var brand: String = "",
                var model: String = "",
                var color: String = "",
                var registerNumber: String = "",
                var year: Int = 0,
                var price: Int = 0,
                @Id
                @GeneratedValue(strategy = GenerationType.AUTO)
                var id: Long = -1)

参考