Prepared for the development of the next release 1.0.1
[jpa-converters] / src / main / java / de / juplo / jpa / converters / OffsetDateTimeConverter.java
1 package de.juplo.jpa.converters;
2
3 import java.sql.Timestamp;
4 import java.time.OffsetDateTime;
5 import javax.persistence.AttributeConverter;
6 import javax.persistence.Converter;
7
8
9 /**
10  * Converts a {@link OffsetDateTime} to a {@link Timestamp}.
11  * @author Kai Moritz
12  */
13 @Converter(autoApply = true)
14 public class OffsetDateTimeConverter implements AttributeConverter<OffsetDateTime, Timestamp>
15 {
16   @Override
17   public Timestamp convertToDatabaseColumn(OffsetDateTime odt)
18   {
19     if (odt == null)
20       return null;
21     return Timestamp.valueOf(odt.withOffsetSameInstant(TimeConversions.getZoneOffset()).toLocalDateTime());
22   }
23
24   @Override
25   public OffsetDateTime convertToEntityAttribute(Timestamp ts)
26   {
27     if (ts == null)
28       return null;
29     return OffsetDateTime.of(ts.toLocalDateTime(), TimeConversions.getZoneOffset());
30   }
31 }