Jooq 사용시 Datetime의 precision의 설정이 제대로 되지 않는것 같을 때

박재현·2022년 7월 23일
0

Jooq로 Datetime 형태의 field insert, update 시 Java의 LocalDatetime 클래스를 그대로 이용하면 datetime의 소수점 자리를 결정하는 precision이 지멋대로 설정 되는것 같아서 issue를 제보함.

DB 스키마를 표방하는 테이블 생성을 잘못했나..? 싶기도 했는데
실제로 Jooq Generator 를 이용해 만들어진 Table class의 선언부를 보아도

val UPDATED: TableField<YOUR_TABLE_RECORD, LocalDateTime?> = createField(DSL.name("updated"), SQLDataType.LOCALDATETIME(6).defaultValue(DSL.field("CURRENT_TIMESTAMP", SQLDataType.LOCALDATETIME)), this, "update time")

6으로 선언되어 있음을 확인했음에도 2022-07-23 00:00:00.1234 또는 2022-07-23 00:00:00.12345 형태로 precision이 3이상 지멋대로 들어가고 있는것을 확인하고

java.time.LocalDateTime.now() 가 아닌 JooqDSL의 DSL.currentLocalDateTime() 을 이용해야만 정확한 precision을 보장하는것을 재차 확인함.

수정되었다고 하는데, 다른 오픈소스 사용할때도 웬만해서는 Java 공통 API class 말고 오픈소스 내부적으로 사용하는 클래스 타입으로 변환하여 사용하는게 리스크 관리 측면에서는 이득일 것 같다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN