X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fjpa%2Fconverters%2FTemporalAmountToNanosConverter.java;fp=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fjpa%2Fconverters%2FTemporalAmountToNanosConverter.java;h=d38a1dbad291eb17ab39fef50c84135bde52c246;hb=c0f5359d7eefa5256a45fe67b272a6b5e52d24e6;hp=0000000000000000000000000000000000000000;hpb=e6f42c30689923d47a4f17e4a31c6791ebee69fc;p=jpa-converters diff --git a/src/main/java/de/juplo/jpa/converters/TemporalAmountToNanosConverter.java b/src/main/java/de/juplo/jpa/converters/TemporalAmountToNanosConverter.java new file mode 100644 index 0000000..d38a1db --- /dev/null +++ b/src/main/java/de/juplo/jpa/converters/TemporalAmountToNanosConverter.java @@ -0,0 +1,29 @@ +package de.juplo.jpa.converters; + +import java.time.Duration; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalAmount; +import javax.persistence.AttributeConverter; +import javax.persistence.Converter; + + +/** + * Converts a {@link TemporalAmount} into a {@link Long} representing + * nanoseconds. + * @author Kai Moritz + */ +@Converter +public class TemporalAmountToNanosConverter implements AttributeConverter +{ + @Override + public Long convertToDatabaseColumn(TemporalAmount amount) + { + return amount.get(ChronoUnit.NANOS); + } + + @Override + public TemporalAmount convertToEntityAttribute(Long nanos) + { + return Duration.ofNanos(nanos); + } +}