我们使用UUID作为主键
批注如下
@Id
@Column(columnDefinition = "BINARY(16)")
protected UUID id;
我们自己生成UUID,并且效果很好
但是,例如当我们手动插入时出现问题
INSERT PINSUS..job ([id], [version], [date_created], [description], [job_url], [last_updated], [name]) VALUES (CAST('30783030-3030-3030-3030-303030303030' AS VARBINARY(16)), CAST(0 AS Numeric(19, 0)), CAST(N'2018-01-23 12:29:02.653' AS DateTime), N'Job for nomis', N'http://localhost:8086/batch/operations/jobs/nomisLoadJob', CAST(N'2018-01-23 12:29:02.653' AS DateTime), N'nomisLoadJob')
根据Microsoft Management Studio将ID存储为0x33303738333033033302D333033302D3330
但是使用jetbrains datagrip进行查看时,id显示为30783030-3030-30
由于它似乎是我们尝试插入的原始UUID的部分字符串,但在转换为BINARY 16时已被截断
如何使用SQL for MSSQL Server手动插入UUID?
目前,如果我们尝试使用具有原始UUID的JPQL查询,则不会返回任何结果。