繁体   English   中英

使用Hibernate / JPA将UUID以二进制形式存储在Mysql数据库中,以提高性能

[英]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 ,它提供了更大的类型范围可供选择:

  • java.lang.UUID
  • 16字节数组
  • 十六进制字符串值

    您的身份证会喜欢:

    @GeneratedValue(generator = "uuid2") @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(columnDefinition = "BINARY(16)") @Id private UUID id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM