DATACMNS-1294 - Enforce JSR-310 type mapping to java.util.Date.
After considering JSR-310 types to be simple we map these types primarily to java.util.Date as the majority of stores does not natively support JSR-310 types. Converters referencing JSR-310 types are now properly annotated with Reading/WritingConverter annotations to distinguish between reading and writing intents. Othwerise, converters between JSR-310/java.util types and Joda/ThreeTenBackport to JSR-310 types interfere with conversion as regular java.util.Date types would convert to e.g. LocalDateTime.
This commit is contained in:
@@ -38,6 +38,7 @@ import org.springframework.util.ClassUtils;
|
||||
* @author Oliver Gierke
|
||||
* @author Christoph Strobl
|
||||
* @author Jens Schauder
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public abstract class JodaTimeConverters {
|
||||
|
||||
@@ -74,6 +75,7 @@ public abstract class JodaTimeConverters {
|
||||
return converters;
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public enum LocalDateTimeToJsr310Converter implements Converter<LocalDateTime, java.time.LocalDateTime> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -151,6 +153,7 @@ public abstract class JodaTimeConverters {
|
||||
}
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public enum LocalDateTimeToJodaLocalDateTime implements Converter<java.time.LocalDateTime, LocalDateTime> {
|
||||
|
||||
INSTANCE;
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.springframework.util.ClassUtils;
|
||||
* @author Barak Schoster
|
||||
* @author Christoph Strobl
|
||||
* @author Jens Schauder
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public abstract class Jsr310Converters {
|
||||
|
||||
@@ -93,6 +94,7 @@ public abstract class Jsr310Converters {
|
||||
.contains(type);
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public static enum DateToLocalDateTimeConverter implements Converter<Date, LocalDateTime> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -104,6 +106,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@WritingConverter
|
||||
public static enum LocalDateTimeToDateConverter implements Converter<LocalDateTime, Date> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -115,6 +118,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public static enum DateToLocalDateConverter implements Converter<Date, LocalDate> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -126,6 +130,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@WritingConverter
|
||||
public static enum LocalDateToDateConverter implements Converter<LocalDate, Date> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -137,6 +142,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public static enum DateToLocalTimeConverter implements Converter<Date, LocalTime> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -148,6 +154,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@WritingConverter
|
||||
public static enum LocalTimeToDateConverter implements Converter<LocalTime, Date> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -159,6 +166,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public static enum DateToInstantConverter implements Converter<Date, Instant> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -170,6 +178,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@WritingConverter
|
||||
public static enum InstantToDateConverter implements Converter<Instant, Date> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -181,6 +190,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public static enum LocalDateTimeToInstantConverter implements Converter<LocalDateTime, Instant> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -192,6 +202,7 @@ public abstract class Jsr310Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public static enum InstantToLocalDateTimeConverter implements Converter<Instant, LocalDateTime> {
|
||||
|
||||
INSTANCE;
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.threeten.bp.ZoneOffset;
|
||||
* @author Oliver Gierke
|
||||
* @author Christoph Strobl
|
||||
* @author Jens Schauder
|
||||
* @author Mark Paluch
|
||||
* @see <a href="http://www.threeten.org/threetenbp">http://www.threeten.org/threetenbp</a>
|
||||
* @since 1.10
|
||||
*/
|
||||
@@ -92,6 +93,7 @@ public abstract class ThreeTenBackPortConverters {
|
||||
.contains(type);
|
||||
}
|
||||
|
||||
@ReadingConverter
|
||||
public static enum LocalDateTimeToJsr310LocalDateTimeConverter
|
||||
implements Converter<LocalDateTime, java.time.LocalDateTime> {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user