如何生成6个字符的随机变量

时间:2018-11-09 10:25:00

标签: hibernate spring-boot

我的实体需要一个唯一的字母数字code

它不是id。也有身份证。而且,此code字段是唯一的。

会是这样

"BS" + 6 alphanumeric chars 

6个字母数字。

“ BS”是默认字符串。因此,他们所有人的开头都将带有“ BS”

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id", updatable = false, nullable = false)
private Long id;

我正在使用弹簧靴。使用休眠模式,我可以执行此类操作,但是我需要将大小设置为8或6 + 2。

我的sql也有@Generator,但我没办法做

每一次,我都不想从数据库中获取,增加并保存。我认为这不是好方法吗?

我该怎么办?自定义generator

我也在寻找这个

https://stackoverflow.com/a/47934704/10309977

但没办法看

大约有1000代。因此,每年大约有1到10百万。

1 个答案:

答案 0 :(得分:1)

实现所需逻辑的定制生成器似乎是生成唯一字母数字“代码”的最佳方法。

GUID / UUID的“问题”是它们具有固定的长度(比您所需的长度长),您仍然可以获得子字符串,但是您可能对值的生成方式有所了解。

根据我的经验,我总是根据可解释并从中检索信息的模式生成唯一的随机代码值。这是我的方法。您设置了62个字符,可以使用26个小写字母,26个大写字母和10个数字。

如果您的“代码”应以“-” + 2个数字结尾,则必须生成5个字符的字符串,然后将2个数字连接起来。

另外,您可能需要将代码长度超过8个字符