기본 crud를 구현하고 있었다.
포스트맨을 통해 JSON형식으로 값을 보내는 형식으로 테스트 중.
그중 500번 오류가 났다. 500번 오류는 서버단에서 나는 오류.(아 스크린샷을 못찍었다..)
내가 만났던 오류는 데이터베이스의 칼럼 중 DATE는 "NULL"이여선 안된다 라는 것.
이 오류가 났던 이유는 내가 ENTITY에 DATE값을 NULLABLE = FALSE를 해놓고 넣을 줄을 몰라서 엉뚱하게 넣었고, 그 이유로 NULL값이 들어갔기 때문.
해결방법은
package com.example.to_do_list.entity;
import jakarta.persistence.*;
import lombok.Getter;
import org.springframework.cglib.core.Local;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDateTime;
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class Time {
@CreatedDate
@Column(updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime createdAt;
@LastModifiedDate
@Column
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime modifiedAt;
// @LastModifiedDate
// private LocalDateTime modifiedAt;
}
Time ENTITY를 새로 만들어서 사용했다. 시간 정보가 필요한 엔티티에 상속을 시켰다. 그리고 DATE 관련 컬럼들을 모두 지운 후에 DATEBASE를 새로 CREATE 해서 다시 시작했다. 이렇게 바꿔주니 정상 작동이 되나? 했지만 역시나 한번에 안간다.
406오류가 떴다. 구글링 해보니 간단한 해결방법이 나와서 해결했다. 해결방법은 ResponseDto에 @Getter 어노테이션을 달아주면 된다.
406 에러는 클라이언트가 서버에게 받은 데이터가 원하는 형식이 아닐경우 뜬다고 한다. 아직 잘은 모르겠지만, 응답을 받은 dto에 getter가 없으니 데이터값을 받아올 수 없어서 그랬나보다
'공부 > 트러블슈팅' 카테고리의 다른 글
TestSuiteExecutionException 오류(수정) (0) | 2024.01.06 |
---|---|
스프링 내부 객체 사용 실수 (0) | 2023.11.22 |
빈 생성 오류 트러블 슈팅 (1) | 2023.11.22 |
[Spring] Could not write JSON: Infinite recursion (StackOverflowError) (0) | 2023.11.16 |
[Spring] DB 연결 실패 (0) | 2023.11.14 |