Anything

Spring Boot JPA에서 LocalDateTime 처리

씬프 2021. 7. 10. 11:11
반응형

Entity 내에서 시간에 대한 처리를 LocalDateTime으로 처리할 때,

DB에서는 Timestamp 타입이 아닌 Binary 타입으로 저장된다.

 

이를 timestamp 타입으로 저장하려면

Converter 객체를 사용한다.

 

아래 코드로 Converter 객체를 생성한다.

package com.scene.board;

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.sql.Timestamp;
import java.time.LocalDateTime;

@Converter(autoApply = true)
public class LocalDateTimeConverter implements AttributeConverter<LocalDateTime, Timestamp> {

    @Override
    public Timestamp convertToDatabaseColumn(LocalDateTime locDateTime) {
        return (locDateTime == null ? null : Timestamp.valueOf(locDateTime));
    }

    @Override
    public LocalDateTime convertToEntityAttribute(Timestamp sqlTimestamp) {
        return (sqlTimestamp == null ? null : sqlTimestamp.toLocalDateTime());
    }
}