代码之家  ›  专栏  ›  技术社区  ›  sungyong

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

  •  0
  • sungyong  · 技术社区  · 6 年前

    我正在使用Thingsboard和PostgreSQL。
    我要做的是通过直接访问内部数据库来获取资产ID。

    Thingsboards的架构具有具有ID字段的资产表。但它的ID和UI的格式不同。

    select id from asset;
    1e8027e92ad5cd0b8faaf5b54912004

    类型 id 是varchar(31),它看起来不像uuid。

    但我想得到的是 92ad5cd0-027e-11e8-b8fa-af5b54912004 从UI。

    我怎样才能转换成那样?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Vitaliy Paromskiy    6 年前

    在Thingsboard中,对于SQL数据库,UUID在数据库中被修剪,并且 - 字符被删除。

    看看这个工具: org.thingsboard.server.common.data.uuid转换器

    从TimeUuID ()->将uuid转换为字符串(您在PostgreSQL中看到的该值)

    来自字符串 ()->将字符串转换为真正的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));
        }