Thingsboard:从内部数据库获取资产 ID

Thingboard: Get asset ID from internal database

我正在将 Thingsboard 与 Postgresql 结合使用。
我想做的是通过直接访问内部数据库来获取资产 ID。

thingsboards 的架构有资产 table,它有 id 字段。但它的 id 与 UI 的格式不同。

select id from asset;
1e8027e92ad5cd0b8faaf5b54912004

id的类型是varchar(31),不像UUID.

但我想从 UI.

得到 92ad5cd0-027e-11e8-b8fa-af5b54912004

我怎样才能转换成那个?

在 ThingsBoard 中,对于 SQL 个数据库,UUID 在数据库内部被修剪,- 个字符被删除。

看看这个实用程序: org.thingsboard.server.common.data.UUIDConverter

fromTimeUUID() -> 将 UUID 转换为 String(这个值你在 Postgresql 中看到)

fromString() -> 将字符串转换为真正的 UUID

public static UUID fromString(String src) {
        return UUID.fromString(src.substring(7, 15) + "-" + 
            src.substring(3, 7) + "-1" + 
            src.substring(0, 3) + "-" + 
            src.substring(15, 19) + "-" + 
            src.substring(19));
    }