微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DynamoDBTypeConverter无法正常工作

如何解决DynamoDBTypeConverter无法正常工作

首先,正确运行的代码: DynamoDB表中的内容为:

"test_field" : "x:x:x"

实体POJO具有:

@DynamoDBTypeConverted(converter = SingleFieldConverter.class)
@DynamoDBAttribute(attributeName = "test_field")
private SingleField singleField;

具有适当的getter和setter方法。 转换器类为:

public class SingleFieldConverter implements DynamoDBTypeConverter<String,SingleField> {

@Override
public String convert(SingleField singleField) {
   // removed for clarity
}

@Override
public SingleField unconvert(String s) {
   // removed for clarity
}

它有效!

但是当我将DynamoDB项更改为:

"test_field" : [
        "x:x:x","x:x:x"
        ]
      

和我的POJO对象:

@DynamoDBTypeConverted(converter = SingleFieldConverter.class)
@DynamoDBAttribute(attributeName = "test_field")
private List<SingleField> singleField;

和转换器类如下:

public class SingleFieldConverter implements DynamoDBTypeConverter<String,List<SingleField>> {

@Override
public String convert(List<SingleField> singleField) {
   // removed for clarity
}

@Override
public List<SingleField> unconvert(String s) {
   // removed for clarity
}

}

它抛出:

DynamoDBMappingException
. . . . . [test_field]; Could not unconvert attribute
 . . .Caused by: com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: expected S in value {L: [{S: x:x:x:,},{S: x:x:x:,}],}

我在网上发现的类似示例据称可以工作,但我的示例却没有。我想念什么,请帮忙?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?