개발바닥곰발바닥
article thumbnail
728x90

회원가입 API를 만들던 중, Member 테이블의 state 필드에 디폴트 값이 N으로 설정되어 있음에도

state 값을 넣어주지 않자 오류가 발생하는 문제가 생겼다.

state 디폴트가 N으로 설정되어 있다.

 

state 값이 null이라며 발생하는 오류

전에 mybatis를 사용할 때는 디폴트 값을 설정해놓으면 값을 넣지 않아도 자동으로 디폴트 값이 들어갔었는데 JPA를 사용하면서 갑자기 이런 문제가 발생하는게 당황스러웠는데, 찾아보니  Entity에 어노테이션 하나만 추가하면 해결되는 문제였다.

 

DynamicInsert

DynamicInsert 어노테이션을 사용하면, Insert 쿼리를 수행할 때 값이 null인 필드를 제외하고 Insert를 수행한다.

DynamicInsert 어노테이션

DynamicInsert 어노테이션을 넣은 다음에는 정상적으로 잘 작동했다.

같은 쿼리를 수행했지만 DynamicInsert 어노테이션을 추가한 후 정상적으로 작동하는 모습

이것과 비슷한 어노테이션으로 DynamicUpdate가 있는데, Update 쿼리에서 null인 필드를 제외하는 어노테이션이다.

728x90
profile

개발바닥곰발바닥

@bestinu

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!