스프링 배치 job 실행 시 reader job bean을 만들 때 아래 오류가 발생함.
No argument provided for a required parameter: parameter #0 empNo of fun `<init>`(kotlin.String, kotlin.String?, kotlin.String?, kotlin.String?, kotlin.Boolean?, kotlin.Boolean?, kotlin.String?, kotlin.String?): kr.co.myAplication.batch.domain.emp.domain.Emp
empNo가 non-nullable 필드인데, 빈값으로 초기화함.
원본 코드
data class Emp(
val empNo: String,
val empName: String? = null,
val email: String? = null,
)
변경 코드
data class Emp(
val empNo: String = "",
val empName: String? = null,
val email: String? = null,
)
코틀린에서 data class 초기화 과정에서 오류가 나는 것 같은데 더 자세한 건 나중에 찾아보자.....
Caused by: java.lang.IllegalArgumentException: No argument provided for a required parameter: parameter #0 empNo of fun `<init>`(kotlin.String, kotlin.String?, kotlin.String?, kotlin.String?, kotlin.Boolean?, kotlin.Boolean?, kotlin.String?, kotlin.String?): kr.co.myApplication.batch.domain.emp.domain.Emp
at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:176)
at kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:111)
at org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:893)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:196)
https://sinna94.tistory.com/entry/Kotlin-Reflection-%EA%B3%BC-%EC%83%9D%EC%84%B1%EC%9E%90