Android Java没有使用Table.updateItem()更新DynamoDB表?

Android Java没有使用Table.updateItem()更新DynamoDB表?,java,android,amazon-dynamodb,Java,Android,Amazon Dynamodb,因此,我的表当前有7列的项。user_id是主键 我执行以下操作以获取当前行,并使用添加的名为“心率信息”的新列表列更新该行 当我在调试模式下运行程序时,我可以看到它捕获了正确的行,并用正确的心率信息数据更新了currentDoc。问题是我什么时候跑步 result = userTable.updateItem(currentDoc, new UpdateItemOperationConfig().withReturnValues(ReturnValue

因此,我的表当前有7列的项。user_id是主键

我执行以下操作以获取当前行,并使用添加的名为“心率信息”的新列表列更新该行

当我在调试模式下运行程序时,我可以看到它捕获了正确的行,并用正确的心率信息数据更新了currentDoc。问题是我什么时候跑步

result = userTable.updateItem(currentDoc,
                    new UpdateItemOperationConfig().withReturnValues(ReturnValue.UPDATED_NEW));
这将返回一个空结果。它不是空值,不会抛出错误。只返回一个空结果,表不会得到更新。我不完全确定发生了什么事

这是我调用userTable.get时的currentDoc

这是在调用userTable.updateItem之前的currentDoc


这两种方法都有效,为什么不更新它们呢。有什么想法吗?

我不是这个Java API的专家,但看看它,似乎
updateItem
并不像您认为的那样:

如果只想用新项替换旧项,请使用
putItem
操作,而不是
updateItem
。使用
updateItem
时,旧项仅确定项的键,然后您应该使用
UpdateExpression
来说明更新的内容和方式。这个表达式不仅仅是一个完整的新项——有关其语法,请参阅文档


因为您没有给出任何更新表达式,所以项目根本没有更新,因此
updated\u NEW
只返回更新修改的属性-即,没有任何内容。

使用putItem修复了它!谢谢
result = userTable.updateItem(currentDoc,
                    new UpdateItemOperationConfig().withReturnValues(ReturnValue.UPDATED_NEW));
userTable.putItem 
userTable.getItem