Skip to content

기존 DTO들이 Java.sql.timestamp로 선언되어 있는 부분 #23

@sj7699

Description

@sj7699

Mybatis를 사용하는 저희 프로젝트에서 Mysql table과 매핑시킬 DTO를 작성했었습니다.
Mysql 칼럼타입에 따라 Java DTO의 필드들의 타입을 정했었는데요.
Mysql timestamp 타입으로 선언되어있는 칼럼을 이름이 비슷하며 java.sql에 존재하는 java.sql.timestamp로 선언했었습니다.
하지만 java8부터 mysql timestamp는 권장되지 않는다 합니다.
찾아본 결과 Thread-Safe하지 않으며 제가 테스트 도중에 확인한 부분으로는 어떤 생성자에서는
서버시간만큼 자동으로 더해주지만 어떤 생성자에서는 그렇지 않는 부분과 같이 일관성이 떨어지는 점도 존재합니다.

따라서 java.time에 존재하는 LocalDateTime을 쓸 것을 제안합니다.
java8부터 해당 java.time을 사용할 것을 권장하며 LocalDateTime은 기본적으로 timezone정보를 필요로 하지 않습니다.
국내 관광지나 여행에 관한 정보를 제공하는 저희 프로젝트같은 경우 국내 timezone을 벗어나는 일이 매우 드물것으로 예상됩니다.
따라서 LocalDateTime이 좋은 선택이 될 것 같습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions