Хранение UUID по-другому на сервере SQL - PullRequest
0 голосов
/ 07 ноября 2018

Я храню UUID в качестве первичного ключа.

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

Проблема в том, что в sql_server UUID хранят другой порядок по сравнению с тем, что я получил из вывода JSON.

Выход JSON

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

База данных

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

Первоначальные 8-4-4 цифры хранятся в другом порядке, тогда как последние 4-12 цифр совпадают. В чем причина этой проблемы и как ее решить?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Вы, вероятно, используете Hibernate, тогда этот код должен работать:

@Id
@GeneratedValue
@Type(type = "uuid-char")
@Column(columnDefinition="uniqueidentifier")
protected UUID id;
0 голосов
/ 11 ноября 2018

Разница в порядке байтов; Microsoft любит хранить первую половину как младший, что немного странно, потому что они всегда хранят вторую половину с прямым порядком байтов. Все остальные хранят все это как big endian, что делает вещи намного проще и портативнее.

...