Есть ли функция в Javascript для генерации UUID / GUID из целого или длинного типа данных. Как сгенерировать UUID / GUID из типа данных int или Long? - PullRequest
0 голосов
/ 17 апреля 2019

Я обновляю mirth connect 2.2.1 до 3.7.0.В последней версии messageid генерируется как длинный тип данных, где, как и в старой версии, он генерируется как GUID.В наших таблицах SQL есть столбцы с уникальным идентификатором для принятия messageid.Так что теперь мне нужно преобразовать тип данных Long в UUID / GUID в JavaScript.Каждое сообщение имеет уникальный messageid, поэтому для одного сообщения сгенерированный GUID должен быть одинаковым.Как конвертировать это?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Самый простой способ - использовать Java, чтобы помочь вам, кроме чистого Javascript.

var guid = new java.util.UUID(messageId, messageId);

Поскольку ваш идентификатор сообщения не будет уникальным для всех каналов, вы можете заменить один из параметров начто-то другое.Может быть, принять участие в ChannelId?

const UUID = java.util.UUID;
var guid = new UUID(UUID.fromString(channelId).getMostSignificantBits(), messageId);
0 голосов
/ 17 апреля 2019

Другие должны исправить меня, если я ошибаюсь, но нет, JavaScript не предоставляет функцию для преобразования GUID в Long.

На самом деле, я даже не уверен, что можно последовательно переходить от Long к GUID без потери или сжатия данных, поскольку обе структуры данных не имеют одинаковую длину.

В некоторых случаях, когда верхние биты GUID представляют собой нули, можно преобразовать Long в GUID, но в большинстве случаев существует серьезная угроза переполнения, не так ли?

...