ont En ce moment Hibernate/JPA ne pas la compatibilité avec Java 8 bibliothèque Date, mais vous avez seulement besoin faire une AttributeConverter utiliser cette bibliothèque:
Pour le type TIMESTAMP vous pouvez utiliser ce convertisseur:
@Converter(autoApply = true)
public class LocalDateTimeAttributeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime datetime) {
return datetime == null ? null : Timestamp.valueOf(datetime);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp timestamp) {
return timestamp == null ? null : timestamp.toLocalDateTime();
}
}
Pour le type DATE vous pouvez utiliser ce convertisseur:
@Converter(autoApply = true)
public class LocalDateAttributeConverter implements AttributeConverter<LocalDate, Date> {
@Override
public Date convertToDatabaseColumn(LocalDate date) {
return date == null ? null : Date.valueOf(date);
}
@Override
public LocalDate convertToEntityAttribute(Date date) {
return date == null ? null : date.toLocalDate();
}
}
Pour le type TIME vous pouvez utiliser ce convertisseur:
@Converter(autoApply = true)
public class LocalTimeAttributeConverter implements AttributeConverter<LocalTime, Time> {
@Override
public Time convertToDatabaseColumn(LocalTime time) {
return time == null ? null : Time.valueOf(time);
}
@Override
public LocalTime convertToEntityAttribute(Time time) {
return time == null ? null : time.toLocalTime();
}
}
ERRM, sa part de JPA 2.2. Votre fournisseur ne prend-il pas encore en charge JPA 2.2? – DN1
Pour Hibernate, voir [deuxième réponse] (https://stackoverflow.com/a/33001846/5221149) de lien en double. – Andreas