--- /dev/null
+package de.juplo.jpa.converters;
+
+import java.time.OffsetDateTime;
+import java.time.ZonedDateTime;
+import javax.persistence.Access;
+import javax.persistence.AccessType;
+import javax.persistence.Convert;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ *
+ * @author Kai Moritz
+ */
+@Entity
+@Access(AccessType.PROPERTY)
+public class EierlegendeWollmilchSau
+{
+ Logger log = LoggerFactory.getLogger(EierlegendeWollmilchSau.class);
+
+
+ Long id;
+
+ OffsetDateTime odt;
+ ZonedDateTime zdt;
+
+
+ @Id
+ @GeneratedValue
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+
+ @Convert(converter = OffsetDateTimeConverter.class)
+ public OffsetDateTime getOdt()
+ {
+ log.trace("get OffsetDateTime: {}", odt);
+ return odt;
+ }
+
+ public void setOdt(OffsetDateTime odt)
+ {
+ log.trace("set OffsetDateTime: {}", odt);
+ this.odt = odt;
+ }
+
+ @Convert(converter = ZonedDateTimeConverter.class)
+ public ZonedDateTime getZdt()
+ {
+ log.trace("get ZonedDateTime: {}", zdt);
+ return zdt;
+ }
+
+ public void setZdt(ZonedDateTime zdt)
+ {
+ log.trace("set ZonedDateTime: {}", zdt);
+ this.zdt = zdt;
+ }
+
+
+ @Override
+ public String toString()
+ {
+ boolean first = true;
+ StringBuilder builder = new StringBuilder();
+ if (odt != null)
+ {
+ builder.append("OffsetDateTime: ");
+ builder.append(odt);
+ first = false;
+ }
+ if (zdt != null)
+ {
+ if (!first)
+ builder.append(", ");
+ builder.append("ZonedDateTime: ");
+ builder.append(zdt);
+ first = false;
+ }
+ return builder.toString();
+ }
+}