package com.worktajm.domain.util;
import com.worktajm.domain.util.JSR310DateConverters.*;
import java.time.*;
import java.util.Date;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
public final class JSR310PersistenceConverters {
private JSR310PersistenceConverters() {}
@Converter(autoApply = true)
public static class LocalDateConverter implements AttributeConverter<LocalDate, java.sql.Date> {
@Override
public java.sql.Date convertToDatabaseColumn(LocalDate date) {
return date == null ? null : java.sql.Date.valueOf(date);
}
@Override
public LocalDate convertToEntityAttribute(java.sql.Date date) {
return date == null ? null : date.toLocalDate();
}
}
@Converter(autoApply = true)
public static class ZonedDateTimeConverter implements AttributeConverter<ZonedDateTime, Date> {
@Override
public Date convertToDatabaseColumn(ZonedDateTime zonedDateTime) {
return ZonedDateTimeToDateConverter.INSTANCE.convert(zonedDateTime);
}
@Override
public ZonedDateTime convertToEntityAttribute(Date date) {
return DateToZonedDateTimeConverter.INSTANCE.convert(date);
}
}
@Converter(autoApply = true)
public static class LocalDateTimeConverter implements AttributeConverter<LocalDateTime, Date> {
@Override
public Date convertToDatabaseColumn(LocalDateTime localDateTime) {
return LocalDateTimeToDateConverter.INSTANCE.convert(localDateTime);
}
@Override
public LocalDateTime convertToEntityAttribute(Date date) {
return DateToLocalDateTimeConverter.INSTANCE.convert(date);
}
}
}