Backend

스프링부트 생성자 없음 에러 no Creators

ruiH 2023. 5. 11. 11:13

JAVA 공부 시작한지 벌써 만 3개월이 됐군요. 시간 참  빨라-

구글 헤메이는것도 힘들고 이렇게 정리하지 않으면 머리속에서 날아갈 것 같기 때문에

공부 도중 트러블 슈팅하는걸 다 올려보기로 마음 먹었습니다

 

 

프로젝트에 대해 간단하게 설명하자면 배당금 프로젝트로 

야후 파이낸스에서 배당금 긁어다가 h2 DB에 저장하고 보여주는 그런 프로젝트입니다.

 

잘 짰다고 생각하고 배당금 정보를 긁어오는 POST API를 날려봤는데 어라라?

Cannot construct instance of `com.example.stock.model.Company` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

뭐 대충 이런 에러가 뜨더군요

 

음음 생성자가 없다는 것이군 .. 근데 나 생성자 있는데 ,,, 기본 생성자가 없어서 그런가? 

 

알고봤더니 @Builder는 생성자가 없는 경우에는 모든 멤버 변수를 파라미터로 받는 기본 생성자를 생성해주지만,

생성자가 있을 경우에는 따로 생성자를 생성하지 않는다고 합니다

 

그럼 아무것도 없는 생성자를 만들어줘야한다는건가 하고, 냅다 @NoArgsConstructor 붙이고 어플리케이션 재시동 했더니 안돌아갑니다

 

그래서 구글링 해 보니 @Builder와 @NoArgsConstructo를 같이 사용하고싶으면 

@AllArgsConstructor도 같이 쓰거나 모든 필드를 가지는 생성자를 직접 만들어 줘야 한다더군요

 

그래서 @NoArgsConstructo와 @AllArgsConstructor를 같이 추가해줬더니 잘 돌아가고 잘 동작합니다.

기쁘네요 슈슝 

 

빨간 상자 = 추가한 것