如何使用JPQL查询存储为BINARY(16)的UUID

时间:2019-11-11 18:44:39

标签: sql sql-server hibernate uuid

我们使用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查询,则不会返回任何结果。

0 个答案:

没有答案