오늘 데이터를 responsebody에 넣어 json으로 예쁘게 담아 http요청을 보냈는데 저장이 안됐다. 자꾸 "not-null property references a null or transient value: 도메인.엔티티.id" 에러가 떳다.
그러기엔 난 너무나 당당하게 json에다가 id를 넣었다. index가 아닌 게시글의 id다.
진짜 chatgpt한테도 물어봤는데
- JSON 데이터를 @RequestBody 어노테이션을 사용하여 컨트롤러의 메서드 매개변수에 직접 매핑하고 있습니다. 이 경우, 스프링은 요청의 Content-Type을 기반으로 데이터를 파싱하려고 시도합니다. Content-Type이 application/json이라고 가정하고 있습니다. 따라서 요청 헤더에 Content-Type: application/json이 올바르게 설정되어 있는지 확인하세요. 그렇지 않은 경우 스프링은 JSON 데이터를 올바르게 파싱하지 못하고 null 값으로 설정할 수 있습니다.
- 게시글_id가 올바른 데이터베이스 키(@Id)로 사용되는지 확인하세요. 데이터베이스에서 해당 필드가 자동으로 생성되거나, 요청 시에 클라이언트에서 제공되어야 하는지 확인하세요. 데이터베이스 스키마와 엔티티 설정을 다시 확인하여 일관성이 있는지 확인하세요.
- Dto와 Entity 사이의 매핑이 정확하게 이루어지고 있는지 확인하세요. Dto 객체에서 게시글_id필드를 올바르게 가져오는지 확인하고, Entity로 매핑될 때 게시글_id 필드를 제대로 설정하는지 확인하세요.
- Entity의 게시글_id 필드가 null이 아니도록 설정되어 있는지 확인하세요. 필드의 @Column(nullable = false) 설정을 다시 확인하세요.
를 해결하란다
지금은 구축 기간인건 떠나서 이건 index가 아니라서 @ID를 해줄 필요 없는 컬럼이었고, notnull은 필수기 때문에@Column설정을 풀수 없었다.
그래서 내가 오타를 냈다 다시한번 해봤지만 오타는 없었다.
그래서 run 시키기 전에 내가 오타를 냈던 걸 기억하고 그 전에 out 폴더와 generated폴더를 삭제하고 gradle에서 clean과 build를 다시 한 다음 run을 시켰다. 데이터가 저장이 된다. 다행이었다. jpa가 쉬운줄 알았는데 역시 베이스 없이 닥치고 만들고자 하니깐 어렵다는걸 다시 느끼고 있다. 하지만 지금 강의를 들으면서 할 시간은 너무 없는 것같다. 새싹톤에서 서비스 링크를 갑자기 제출하라 해서 aws에 올릴 준비도 해야한다. 제출물은 11일까지인데 16일까지 코드 수정은 가능하다고 하던데 이게 말인가 싶지만... 어쨌든 참여를 했으니 꼭 좋은 결과를 보여야겠다. 나름 하나씩 해결하다 보니 즐거움도 느끼고 있어서 인생 재미있다고 느끼는 요즘이다.
'자기개발 > 새싹톤_POA' 카테고리의 다른 글
aws, docker 어렵네 (0) | 2023.06.13 |
---|---|
아직도 잘 모르겠는 ... (2) | 2023.06.10 |
java를 제대로 배우지 않으면 이런게 고생이구나 (2) | 2023.06.08 |
우리팀의 구조와 사용할 s3 레포[springboot, intellij] (0) | 2023.06.01 |
api 명세가 어려운 내게 추천 (0) | 2023.06.01 |