gpt4 book ai didi

java JPA 更短的UUID?

转载 作者:行者123 更新时间:2023-12-01 18:07:10 29 4
gpt4 key购买 nike

我的 java JPA 实体使用以下代码生成其 UUID

@Entity
public class Myclass {
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
String id;

String name;
}

在 Oracle 和 java 中作为字符串,ID 最终是这样的:

2c96cc2a52f9f9a90152fa6549f40008

32 个十六进制字符串。

我必须与一些第三方系统进行交互,这些系统需要在不同的地方保存我的 ID,并且它必须是相同的。不幸的是,它们的字段只允许 30 个字符的字符串(任何字符,不仅是十六进制)。

所以我需要我的uuid看起来像一个30个字符或更少的字符串,无论它出现在哪里(在oracle中,在java中,在第三方系统中,等等)。

我应该怎么做才能使该 uuid 的表示使用所有字母数字字符(“ghi...z”但没有奇怪的字符)更短以及如何确保该表示在数据库中可见并且在应用程序中?

非常感谢

最佳答案

如果您愿意处理一些看起来很奇怪的键,请使用高于 16 的基数对 UUID 进行编码,例如 Base36(所有字母和数字,可以不区分大小写)或 Base64(通常不是 URL-安全的)。如果您想要尽可能紧凑的 URL 安全的内容,您可以使用 my implementation of Flickr-compatible Base58 ,它具有用于编码和解码 UUID 对象的特定帮助程序。

关于java JPA 更短的UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511155/

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