특정 데이터의 수정 날짜를 기록하기 위해 아래와 같은 속성으로 관리하고 있었다.
@Column(name = "MOD_DATE")
@Temporal(TemporalType.DATE)
private Date modDate;
이 수정 날짜를 기준으로 동작하는 코드가 있는데, 로직이 이상하게 돌아 확인해보니 modeDate의 속성을 변경해도 DB에 저장되지 않았다. 정확한 증상은 Hibernate를 이용해 해당 Entity를 읽어온 후 시간을 약 30분가량 늦춘 후 저장을 해도 변경사항이 DB에 저장되는 않는것. 관련 내용을 구글링해 보니 비슷한 경우를 겪은 개발자가 있었는데, 관련된 답변을 보니 TemporalType에 따라 데이터 처리 방식이 다른것 같다.
위에 코드에서 사용하고 있던 Temporal.DATE 타입의 경우 년,월,일 까지만 인식할 뿐 시간값은 다루지 않는듯 하다. 그래서 TemporalType.TIMESTAMP로 아래와 같이 수정 했더니 수정한 시간값이 정상적으로 DB에 저장되는걸 확인할 수 있었다.
@Column(name = "MOD_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date modDate;
- 참고
'Java > Spring' 카테고리의 다른 글
SpringBoot에 Let's Encrypt 적용 (1) | 2020.02.23 |
---|---|
완전히 실행 가능한 Spring Boot 배포 (0) | 2018.02.06 |
댓글