Le stockage de UUID d'une manière différente dans le serveur sql

voix
0

Je stocke UUID comme une clé primaire.

  @GeneratedValue(generator = UUID_GENERATOR)
    @GenericGenerator(name = UUID_GENERATOR, strategy = uuid2)
    @Column(name = store_id)
    private UUID storeId;

Le problème est en sql_server les UUID stockent un ordre différent par rapport à ce que je suis arrivé à la sortie JSON.

JSON

 storeId: 3854fe95-e6b6-4319-9d9a-bfe67c9a07d6,

Base de données

storeID: 95FE5438-B6E6-1943-9D9A-BFE67C9A07D6

Les chiffres 8-4-4 initiales stockent dans un ordre différent que 4-12 derniers chiffres sont les mêmes. Quelle est la raison de ce problème et comment résoudre ce problème?

Créé 07/11/2018 à 20:09
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

La différence est endianness; Microsoft aime stocker la première moitié aussi peu endian, ce qui est un peu bizarre, car ils stockent toujours la deuxième moitié aussi grand endian. Tout le monde stocke ailleurs la chose entière aussi grand endian, ce qui rend les choses beaucoup plus simple et plus facile à transporter.

Créé 11/11/2018 à 05:51
source utilisateur

voix
0

Vous utilisez probablement Hibernate alors ce code devrait fonctionner:

@Id
@GeneratedValue
@Type(type = "uuid-char")
@Column(columnDefinition="uniqueidentifier")
protected UUID id;
Créé 13/12/2018 à 11:25
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more