package br.com.xxxxx.repositories.relational.model.entities.core.converter;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.sql.Date;
import java.time.LocalDate;
@Converter(autoApply = true)
public class LocalDatePersistenceConverter implements AttributeConverter<LocalDate, Date> {
@Override
public Date convertToDatabaseColumn(LocalDate entityValue) {
return Date.valueOf(entityValue);
}
@Override
public LocalDate convertToEntityAttribute(Date databaseValue) {
return databaseValue.toLocalDate();
}
}
package br.com.xxxxxx.repositories.relational.model.entities.core.converter;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.sql.Timestamp;
import java.time.LocalDateTime;
@Converter(autoApply = true)
public class LocalDateTimePersistenceConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime entityValue) {
return Timestamp.valueOf(entityValue);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp databaseValue) {
return databaseValue.toLocalDateTime();
}
}
package br.com.xxxxxx.repositories.relational.model.entities.core.converter;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.sql.Time;
import java.time.LocalTime;
@Converter(autoApply = true)
public class LocalTimePersistenceConverter implements AttributeConverter<LocalTime, Time> {
@Override
public Time convertToDatabaseColumn(LocalTime entityValue) {
return Time.valueOf(entityValue);
}
@Override
public LocalTime convertToEntityAttribute(Time databaseValue) {
return databaseValue.toLocalTime();
}
}
package br.com.xxxxxxx.repositories.relational.model.entities.core.converter;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.time.OffsetDateTime;
import java.util.Objects;
@Converter(autoApply = true)
public class OffsetDateTimePersistenceConverter implements AttributeConverter<OffsetDateTime, String> {
/**
* @return a value as a String such as 2014-12-03T10:15:30+01:00
* @see java.time.OffsetDateTime#toString()
*/
@Override
public String convertToDatabaseColumn(OffsetDateTime entityValue) {
return Objects.toString(entityValue, null);
}
@Override
public OffsetDateTime convertToEntityAttribute(String databaseValue) {
return OffsetDateTime.parse(databaseValue);
}
}
package br.com.xxxxxx.repositories.relational.model.entities.core.converter;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.time.Period;
import java.util.Objects;
@Converter(autoApply = true)
public class PeriodPersistenceConverter implements AttributeConverter<Period, String> {
/**
* @return an ISO-8601 representation of this duration.
* @see java.time.Period#toString()
*/
@Override
public String convertToDatabaseColumn(Period entityValue) {
return Objects.toString(entityValue, null);
}
@Override
public Period convertToEntityAttribute(String databaseValue) {
return Period.parse(databaseValue);
}
}