코틀린 data class 사용 시 주의사항

jaycee·2023년 11월 30일

예상

mybatis에서 조회 쿼리로 DB emp 테이블 컬럼의 emp_no 가 Emp 모델 empNo 변수로 camel case로 매핑되어 사용하고자 함

현실

Emp 모든 컬럼의 출력 값이 null로 찍힘

원인

mybatis 내부에서 getter/setter로 리턴 받을 모델의 값들을 조작하기 때문에 data class 속석 값이 immutable인 val로 선언되어있다면 null이 입력됨

data class Emp(
    val empNo: String,
    val empName: String? = null,
    val email: String? = null,
)

해결방법

출력받을 객체의 속성값을 mutable인 var로 세팅한다.

data class TiEmp(
    var empNo: String,
    var empName: String? = null,
    var email: String? = null,
)
profile
오늘도 하나 배웠다.

0개의 댓글