gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:51:46 26 4
gpt4 key购买 nike

现在,我们将 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,它提供了更广泛的类型范围可供选择:

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

    您的 ID 会喜欢:

    @GenerateValue(生成器 = "uuid2")
    @GenericGenerator(名称 = "uuid2", 策略 = "uuid2")
    @Column(columnDefinition = "BINARY(16)")
    @ID
    私有(private)UUID ID;

关于java - 使用 Hibernate/JPA 将 UUID 以二进制形式存储在 Mysql 数据库中以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43606386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com