我将UUID存储为主键。
@GeneratedValue(generator = "UUID_GENERATOR")
@GenericGenerator(name = "UUID_GENERATOR", strategy = "uuid2")
@Column(name = "store_id")
private UUID storeId;
问题是在sql_server中,与我从JSON输出中获得的UUID相比,UUID存储的顺序不同。
JSON输出
"storeId": "3854fe95-e6b6-4319-9d9a-bfe67c9a07d6",
数据库
storeID: "95FE5438-B6E6-1943-9D9A-BFE67C9A07D6"
最初的8-4-4位数字以不同的顺序存储,而最后的4-12位数字相同。这个问题的原因是什么?如何解决这个问题?
答案 0 :(得分:1)
区别在于字节顺序;微软喜欢将前半部分存储为小端,这有点奇怪,因为他们总是将后半部分存储为大端。其他所有人都将整个东西存储为大端,这使事情变得更加简单和可移植。
答案 1 :(得分:0)
您可能正在使用Hibernate,那么此代码应该可以工作:
@Id
@GeneratedValue
@Type(type = "uuid-char")
@Column(columnDefinition="uniqueidentifier")
protected UUID id;