首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hibernate/JPA将UUID作为二进制存储在Mysql数据库中,以提高性能

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

Stack Overflow用户
提问于 2017-04-25 09:14:34
回答 1查看 1.9K关注 0票数 1

现在,我们使用JPA注释将id定义为String类型:

代码语言:javascript
复制
@Id
private String id;

现在,我们希望在Mysql中将UUID保存为二进制文件,我知道JPA有一种方法来实现它,如下所示:

代码语言:javascript
复制
@Id
@Column(columnDefinition = "BINARY(16)")
private UUID id;

但是要将字符串修改为java.util.UUID类型需要付出很大的努力,因为我需要修改大量的代码(大量的测试用例、其他调用等等,无论如何我们不能这样做)。

然后,我尝试使用JPA转换器将字符串转换为字节并保存它,但我发现JPA不允许在ID字段上定义转换器。

因此,请您提供一些可能的方法来将UUID保存为二进制文件,而无需更改原始的字符串类型。

EN

回答 1

Stack Overflow用户

发布于 2017-04-25 11:45:45

您可以使用uuid2,它提供了更广泛的类型范围供您选择:

  • java.lang.UUID
  • 16字节数组
  • 十六进制字符串值 您的id会喜欢:@GeneratedValue(generator = "uuid2") @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(columnDefinition = "BINARY(16)") @Id private UUID id;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43606386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档