现在,我们使用JPA注释将id定义为String类型:
@Id
private String id;
现在我们想在UML中将UUID保存为二进制文件,我知道JPA有一种实现方式,如下所示:
@Id
@Column(columnDefinition = "BINARY(16)")
private UUID id;
但是将String修改为java.util.UUID类型需要付出很大的努力,因为我需要修改大量的代码(很多测试用例,其他调用等等,无论如何我们都不能这样做)。
然后我尝试使用JPA Converter将String转换为字节并保存,但我发现JPA不允许在ID字段上定义转换器。
那么,请谁可以提供一些可能的方法将UUID保存为二进制而不更改原始字符串类型。
答案 0 :(得分:1)
您可以使用uuid2
,它提供了更广泛的类型范围供您选择:
十六进制字符串值
你的身份证明:
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(columnDefinition = "BINARY(16)")
@Id
private UUID id;