I’m trying to map to DynamoDB list of dates in Java
JavaScript
x
@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 😉
JavaScript
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());
}
}