자바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에 추가한다.
-- 잘 안됨.