我正在使用Azure SDK for Java并使用Azure存储表。我正在尝试更新行中的字段,我正在使用的代码如下
TableClient tableClient = getTableClient();
String myPartitionKey = "partitionkey";
String myRowKey = "rowkey";
List<String> propertiesToSelect = new ArrayList<>();
propertiesToSelect.add("field9");
propertiesToSelect.add("field10");
Response<TableEntity> response = tableClient.getEntityWithResponse(myPartitionKey, myRowKey, propertiesToSelect,
Duration.ofSeconds(5), null);
TableEntity tableEntity = response.getValue();
Map<String, Object> properties = tableEntity.getProperties();
properties.put("field9", "value9");
properties.put("field10", "value10");
tableClient.updateEntity(tableEntity, TableEntityUpdateMode.MERGE);
实际情况是字段值正在更新,但沿着一些名称以“odata”开头的字段也被添加到行中。
如何防止将这些字段添加到行中?
谢谢你的帮助。
1条答案
按热度按时间vddsk6oq1#
解决方案是创建一个具有相同分区键和行键的新实体。然后添加我们试图更新的属性,再在合并模式下更新该实体。