我正在将mirth connect 2.2.1升级到3.7.0。在最新版本中,messageid会生成为long数据类型,而在旧版本中,它会生成为GUID。我们的SQL表具有unique-identifier列以接受messageid。所以现在我需要在javascript中将Long数据类型转换为UUID / GUID。每个消息都具有唯一的messageid,因此对于单个消息,生成的GUID应该相同。如何转换?
答案 0 :(得分:0)
如果我错了,其他人应该纠正我,但是不能,JavaScript没有提供将GUID转换为Long的功能。
实际上,我什至不能确定是否可以从Long到GUID一致而不会丢失或压缩,因为两个数据结构的长度都不相同。
在某些情况下,如果GUID的高位为零,则有可能从Long转换为GUID,但是在大多数情况下,会存在严重的安全溢出风险,不是吗?
答案 1 :(得分:0)
除了纯Javascript之外,最简单的方法就是使用Java来帮助您。
var guid = new java.util.UUID(messageId, messageId);
由于您的messageId在各个渠道之间将不会唯一,因此您可以将其中一个参数替换为其他参数。也许参加了channelId?
const UUID = java.util.UUID;
var guid = new UUID(UUID.fromString(channelId).getMostSignificantBits(), messageId);