X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fjpa%2Fconverters%2FLocalDateTimeConverter.java;h=b4773a4e0ce4062c59b6a4701bfa31d5fa60d3d2;hb=1870491f00f6d583d6ebe9270bf69e13633c1bf7;hp=0e5251d6372a94960d57aace79618bd4c00a45a2;hpb=d05d2977dd2e2d90177bae7c84ab93d23282129b;p=jpa-converters diff --git a/src/main/java/de/juplo/jpa/converters/LocalDateTimeConverter.java b/src/main/java/de/juplo/jpa/converters/LocalDateTimeConverter.java index 0e5251d..b4773a4 100644 --- a/src/main/java/de/juplo/jpa/converters/LocalDateTimeConverter.java +++ b/src/main/java/de/juplo/jpa/converters/LocalDateTimeConverter.java @@ -1,36 +1,31 @@ package de.juplo.jpa.converters; -import java.time.Instant; +import java.sql.Timestamp; import java.time.LocalDateTime; -import java.time.ZoneOffset; -import java.util.Date; import javax.persistence.AttributeConverter; import javax.persistence.Converter; /** - * Converts a {@link LocalDateTime} to a {@link Date}, by converting it into - * an {@Instant} for the GMT-timezone and then convering that {@link Instant} - * into a {@link Date} as suggested in the official Java 8 Time tutorial. - *

- * The {@link Date} can then be persisted as - * {@link java.persistene.TemporalType.TIMESTAMP} with the help of the - * {@link java.persist.Tmporal}-annotation. - * @see https://docs.oracle.com/javase/tutorial/datetime/iso/legacy.html + * Converts a {@link LocalDateTime} to a {@link Timestamp}. * @author Kai Moritz */ @Converter(autoApply = true) -public class LocalDateTimeConverter implements AttributeConverter +public class LocalDateTimeConverter implements AttributeConverter { @Override - public Date convertToDatabaseColumn(LocalDateTime ldt) + public Timestamp convertToDatabaseColumn(LocalDateTime ldt) { - return Date.from(ldt.toInstant(ZoneOffset.UTC)); + if (ldt == null) + return null; + return Timestamp.valueOf(ldt); } @Override - public LocalDateTime convertToEntityAttribute(Date date) + public LocalDateTime convertToEntityAttribute(Timestamp ts) { - return LocalDateTime.from(date.toInstant()); + if (ts == null) + return null; + return ts.toLocalDateTime(); } }