[英]Store UUID as binary in Mysql database with Hibernate/JPA for improving the performance
现在,我们将ID定义为带有JPA批注的String类型:
@Id
private String id;
现在我们要将UUID保存为Mysql中的二进制文件,我知道JPA有一种实现它的方法,如下所示:
@Id
@Column(columnDefinition = "BINARY(16)")
private UUID id;
但是将String修改为java.util.UUID类型是很大的努力,因为我需要修改巨大的代码(很多测试用例,其他调用等等,无论如何我们都不能这样做)。
然后,我尝试使用JPA Converter将String转换为字节并保存,但是我发现JPA不允许在ID字段上定义转换器。
因此,请谁能提供一些可能的方式将UUID保存为二进制而不更改原始String类型。
您可以使用uuid2
,它提供了更大的类型范围可供选择:
十六进制字符串值
您的身份证会喜欢:
@GeneratedValue(generator = "uuid2") @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(columnDefinition = "BINARY(16)") @Id private UUID id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.