스프링 공부/기타

MySQL&스프링 부트 - DB에 생성날짜가 null로 들어갈 때

모항 2023. 5. 27. 19:21

https://github.com/Efub3-InternToyTeam2/Backend

 

GitHub - Efub3-InternToyTeam2/Backend: 2023년 1학기 EFUB 프론트-백 인턴 합동 토이프로젝트(트위터 클론코

2023년 1학기 EFUB 프론트-백 인턴 합동 토이프로젝트(트위터 클론코딩)의 백엔드 리포지토리 - GitHub - Efub3-InternToyTeam2/Backend: 2023년 1학기 EFUB 프론트-백 인턴 합동 토이프로젝트(트위터 클론코딩)의

github.com

 

위의 리포지토리에 있는 EFUB 인턴 합동 토이프로젝트를 개발하다가, 저번에 했던 실수를 또 다시 저질러서 다시는 잊지 않고자 메모한다.

 

나는 BaseTimeEntity를 사용해 생성 및 수정 날짜를 관리하는 코드에서 실수를 많이 한다. 어노테이션을 빼먹어서, 날짜 값이 DB에 null로 들어가버린다.

 

아래 캡처와 같이, 다른 값들은 잘 들어가는데 created_date만 null로 저장되는 것이다(modified_date는 수정 작업이 일어날 때에 생성되기 때문에 지금은 null인 것이 맞다).

 

 

@Transactional

이 실수를 처음 저질렀을 때 빼먹었던 어노테이션은 @Transactional이다.

Service 클래스 가장 앞머리에 @Transactional을 넣어야 하는데 이를 빼먹었다.

 

@EnableJpaAuditing

이번에 빼먹은 어노테이션은 @EnableJpaAuditing이다.

이 코드는 프로젝트를 실행할 때 Run 하는 파일인 Application 클래스의 앞머리에 붙여야 한다.

 

이젠 절대 똑같은 실수를 저지르지 말자!!!