关于Azure表存储中的表实体

时间:2016-04-17 07:44:04

标签: java azure azure-table-storage

我正在使用Java语言并创建了一个从TableServiceEntity扩展的类。

public class GameLogsByHandGameId extends TableServiceEntity{

    private final String TABLE_NAME = "GameLogsByHandGameId";

    public GameLogsByHandGameId(String handId, String gameId) {
        this.partitionKey = handId;
        this.rowKey = gameId;
    }

    @Override
    public String getPartitionKey() {
        return this.partitionKey;
    }

    @Override
    public String getRowKey() {
        return this.rowKey;
    }

    public long getTableId() {
        return tableId;
    }

    public void setTableId(long tableId) {
        this.tableId = tableId;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    @Override
    public String getTableName() {
        return TABLE_NAME;
    }

任何azure表实体都有三个系统属性,PartitionKey,RowKey和Timestamp。

MSDN文档(https://msdn.microsoft.com/en-us/library/azure/dd179338.aspx)说"服务器管理Timestamp的值,不能修改"

我的实体中没有TimeStamp属性;我虽然服务器无论如何都会在每个实体的表格中插入它。

虽然当我在桌面存储上看到我的实体时;我没有看到TimeStamp专栏?

enter image description here

我需要启用它吗?

2 个答案:

答案 0 :(得分:1)

不,您不必启用此属性。它默认存在。如果您查看http://azure.github.io/azure-sdk-for-java/com/microsoft/azure/storage/table/TableServiceEntity.html处的TableServiceEntity文档。你会看到这个属性。它在Java SDK中称为timeStamp

创建或更新实体时,Azure表服务设置

Timestamp属性。它表示创建/上次更新实体时的UTC日期/时间值。

至于为什么此列不可见,您正在使用的工具可能选择不显示此属性。你能尝试使用其他工具吗?

答案 1 :(得分:0)

有一篇关于列出每个Azure存储资源管理器的官方文章,包括Microsoft和三方提供商提供的这些文章,请参阅https://azure.microsoft.com/en-us/documentation/articles/storage-explorers/

正如@GauravMantri所说,请尝试使用文章中列出的其他工具。