[英]Mapping List<LocalDateTime> to DynamoDB
我正在尝试 map 到 Java 中的 DynamoDB 日期列表
@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);
}
}
我已经编写了自己的转换器,但它仅适用于 LocalDateTime 而不适用于列表。 有谁知道如何正确地做到这一点?
我是否应该编写单独的转换器来返回字符串列表,其中每个字符串都将从本地日期时间转换?
在接口 DynamoDBTypeConverter<S,T> 中表示 S - DynamoDB 标准类型,T - 对象的字段/属性类型。 使用 T 作为列表。
public class LocalDateTimeConverter implements DynamoDBTypeConverter<String, List<LocalDateTime>> {
@Override
public String convert(List<LocalDateTime> dateTime) {
//your implementation
}
@Override
public List<LocalDateTime> unconvert(String dateTimeStr) {
//your implementation
}
}
我写了下面这样的转换器,它可以按我的意愿工作;)
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());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.