자바8의 localdatetime은 jpa-hibernate에서 자동변환이 적용되지 않는다. 따라서 convert를 별도로 구현하거나 Jsr310JpaConverters를 추가해야 한다.

1. converter구현
  1.1. converter를 구현하고 관련 필드의 @Column에 정의
  1.2. 또는 converter를 구현 후 entityScan의 경로에 추가


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

@Converter(autoApply=true)
public class LocalDateTimeJpaConverter implements AttributeConverter<LocalDateTime, Timestamp>
{
    @Override
    public Timestamp convertToDatabaseColumn(LocalDateTime attribute) {
        return attribute == null ? null : Timestamp.valueOf(attribute);
    }

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

2. java8을지원하는hibernate를추가

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-java8</artifactId>
    <version>5.0.0.Final</version>
</dependency>

3.  Jsr310JpaConverters 을 entity-scan의 basePackageClasses에 추가한다.
   -- 잘 안됨.

Leave a Reply

Your email address will not be published. Required fields are marked *