I’m trying to map to DynamoDB list of dates in Java
@DynamoDBTypeConverted(converter = LocalDateTimeConverter.class) private List<LocalDateTime> acquisitionsDates; public class LocalDateTimeConverter implements DynamoDBTypeConverter<String, LocalDateTime> { @Override public String convert(LocalDateTime dateTime) { return dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); } @Override public LocalDateTime unconvert(String dateTimeStr) { return LocalDateTime.parse(dateTimeStr); } }
I have written my own converter but it works only for LocalDateTime but not for the List. Does anyone know how to do it correctly?
Should I write separate converter that will return list of strings where each string will be converted from localdatetime?
Advertisement
Answer
I wrote converter like below and it works as I wanted 😉
public class ListOfLocalDateTimesConverter implements DynamoDBTypeConverter<List<String>, List<LocalDateTime>> { @Override public List<String> convert(List<LocalDateTime> localDateTimes) { return localDateTimes .stream() .map(localDateTime -> localDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)) .collect(Collectors.toList()); } @Override public List<LocalDateTime> unconvert(List<String> strings) { return strings .stream() .map(str -> LocalDateTime.parse(str)) .collect(Collectors.toList()); }
}