대머리개발자

[코틀린] Ensure that xx.dto has a non-private no-argument constructor. 본문

개발이야기/예외

[코틀린] Ensure that xx.dto has a non-private no-argument constructor.

대머리개발자 2023. 4. 18. 09:15
728x90

그냥 달려 들면 몸이 고생한다.

 

코틀린이란 친구랑 별로 친하지 못하다. 우리 2일차? ㅋㅋ  하지만 급하게 친해 지고 싶어서 무작정 친구하자고 했더니...

 

미안해 친구야.. 천천히 알아갈께~

 

앞선 내용에서서 코틀린 + 스프링 + JPA로 프로젝트를 설정했다.

 

답이 이쁘게 콘솔에 나와 있는데...잘 모르니 엄한 곳에서만 삽질을 했다..

Failed to instantiate instance of destination com.forum.board.BoardDto. 
Ensure that com.forum.board.BoardDto has a non-private no-argument constructor.

 

생각보다 래퍼런스가 많지 않네..친구야 너도 분발좀 해야겠으..

 

아래 내용만 추가하면 삽질이 마무의리가 될 것으로 예상했지만 여전히 동일한 오류.

noArg {
    annotation("javax.persistence.Entity") // 2
}

 

해당 부분을 추가하면  @Entity 만 자동 생성해 주는 옵션이다. 즉 data 클래스는 자동으로 만들어 주지 않는다.

dto는 엔티티가 아니니깐....

 

직접 만들어줘야 한다. ㅋㅋㅋㅋ 하악하악.

 

1.  constructor() : this()

2.  생성자에게 기본값을 설정   --> 하나라도 기본 value 설정하지 않으면 동일한 오류가 난다.

 

난 두번째 방법으로 하악하

data class BoardDto(
    var id:Long = 0,   
    var title: String = "",
    var menuId:Int = 0,
    var groupId:Int = 0,
    var path:String = "",
    var content:String = "",
    var status:String = "",
    var userId:String = "",
    var nickname:String = "",
    var noticeType:Int = 0,
    var regDt:String? = "",
    var modDt:String? = ""
)

 

 

 

728x90