我使用二进制格式在mysql数据库中存储UUID(二进制(16))
我在hibernate中使用以下代码
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column( columnDefinition = "BINARY(16)", length = 16 )
private UUID id;当我在phpmyadmin中查看时,这些生成的值看起来是不同的,并且看起来是垃圾值。
如果我在mysql查询中使用UUID()函数,这似乎很好。
然后如何告诉hibernate使用UUID()函数
发布于 2014-05-08 04:11:42
什么是二进制类型?
它们包含字节字符串而不是字符串。这意味着它们没有字符集,排序和比较基于值中字节的数值。这就是它们看起来像垃圾值的原因
UUID()函数创建什么?
UUID被设计成一个在空间和时间上是全局唯一的数字。对UUID()的两个调用将生成两个不同的值,即使这些调用是在两台互不连接的计算机上执行的,UUID是一个由aaaaaaaa bbbb-cccc dddd格式的五个十六进制数组成的utf8字符串表示的128位数字:这就是它们可读的原因。
UUID()函数不创建字节字符串,而是创建字符串。所以,它们是非常不同的。
https://stackoverflow.com/questions/23532492
复制相似问题