본문 바로가기
Programming/삽질일기

[Kotlin, JPA] Should have [public, protected] no-arg constructor

by kghworks 2024. 6. 10.
@Entity
@Table(name = "member")
data class Member(
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    val id: Long? = null,
    @Column
    val nameMember: String,
    @Column
    val ymdtCre: LocalDateTime = LocalDateTime.now(),
    @Column
    val ymdtUpdt: LocalDateTime?
)

 

에러 메시지에 원인이 나와있다. public, protected 접근제어자로 기본생성자를 만들라는 컴파일 에러다. 엔티티는 반드시 기본 생성자를 가져야한다. 

출처 : https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#entity

 

 

 Java라면 Lombok을 사용해 @NoArgsConstructor 를 선언해주면 되지만, 코틀린은 아래처럼 build.graldle 파일에서 해결이 가능하다.

plugins {
 	// ....
    kotlin("plugin.jpa") version {Your Kotlin Version}
}

 

댓글