现在,我们将 id 定义为带有 JPA 注解的 String 类型:
@Id
private String id;
现在我们想在Mysql中将UUID保存为二进制,我知道JPA有一种方法来实现它,如下所示:
@Id
@Column(columnDefinition = "BINARY(16)")
private UUID id;
但是将String修改为java.util.UUID类型是一个很大的工作,因为我需要修改大量的代码(大量的测试用例,其他调用等等,无论如何我们不能这样做)。
然后我尝试使用 JPA Converter 将 String 转换为字节并保存它,但我发现 JPA 不允许在 ID 字段上定义转换器。
那么,请问谁可以提供一些可能的方法来将 UUID 保存为二进制而不更改原始 String 类型。
您可以使用
uuid2
。它提供了更广泛的类型范围可供选择:
您的 ID 会喜欢:
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(columnDefinition = "BINARY(16)")
@Id
private UUID id;