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));
}
我正在将 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));
}