본문 바로가기
오류기록

not-null property references a null or transient value

by 손건호 2024. 3. 12.

 

 

springboot3.1.4 java17 JPA 환경의 서버 프로그램SML은 mariaDB 를 사용하고 있다

이 데이터베이스는 boolean 형의 컬럼을 tinyint(1) 로 참,거짓을 관리 한다

SML의 Entity클래스의 변수 playlistStatus는

데이터베이스의 playlist_status 컬럼을 의미하며

어노테이션으로 속성을 명시하고 있다

@Column(name = "playlist_status", nullable = false, columnDefinition = "TINYINT(1) DEFAULT 1")

private Boolean playlistStatus;

 

하지만 실제 데이터베이스와 Entity클래스의 차이로 인해 오류가 발생한다

 

에러발생시점은

해당 컬럼에 null값이 포함 되어 수정 요청이 데이터베이스로 갈때 
DataIntegrityViolationException: not-null property references a null or transient value
에러가 발생한다
notnull 속성에 null을 넣으니 당연히 에러가 발생할거라 생각 하겠지만
디폴트값이 1 일때 null이 입력 되면 저장되는 값은 1 이여야 한다


문제의 원인은 어노테이션 문법의 오류라고 추측하고 있다

columnDefinition = "TINYINT(1) DEFAULT 1"

가 문법상 맞지 않거나

mariaDB와 JPA 의 연동할때 boolean데이터형을 명시하는 어노테이션의 오류

(데이터형에 boolean 혹은 tinyint를 기입)(값을 false,trur 혹은 0,1)

 

부정확한 어노테이션작성으로인해 디폴트값 = 1 이 적용되지않아서

notNull을 디폴트값으로 저장 하지못해는것 같다

 

2024/03/12 작성

'오류기록' 카테고리의 다른 글

db가 로컬서버의 응답을 받지않음 500 (db ip 허용)  (0) 2022.02.17

댓글