Prevented possible NullPointerException's
[jpa-converters] / src / main / java / de / juplo / jpa / converters / ZonedDateTimeConverter.java
1 package de.juplo.jpa.converters;
2
3 import java.sql.Timestamp;
4 import java.time.ZoneId;
5 import java.time.ZonedDateTime;
6 import javax.persistence.AttributeConverter;
7 import javax.persistence.Converter;
8
9
10 /**
11  * Converts a {@link ZonedDateTime} to a {@link Timestamp}.
12  * @author Kai Moritz
13  */
14 @Converter(autoApply = true)
15 public class ZonedDateTimeConverter implements AttributeConverter<ZonedDateTime, Timestamp>
16 {
17   @Override
18   public Timestamp convertToDatabaseColumn(ZonedDateTime zdt)
19   {
20     if (zdt == null)
21       return null;
22     return Timestamp.from(zdt.withZoneSameInstant(ZoneId.systemDefault()).toInstant());
23   }
24
25   @Override
26   public ZonedDateTime convertToEntityAttribute(Timestamp ts)
27   {
28     if (ts == null)
29       return null;
30     return ZonedDateTime.ofInstant(ts.toInstant(), ZoneId.systemDefault());
31   }
32 }