gpt4 book ai didi

java - Spring 唯一 ID 为具有 9 位数字的整数 - 不是序列

转载 作者:行者123 更新时间:2023-11-29 08:42:54 25 4
gpt4 key购买 nike

我正在尝试寻找在 Spring 中生成 Entityid 的最佳实践具有以下要求:

  • 必须是独一无二的
  • 必须有 9 位数字
  • 必须是整数
  • 不能顺序

我不能使用 uuid 因为它不符合要求。

我正在使用 Hibernate 当前版本 4.3.1 - 但如果需要我可能会更新。

最佳答案

您可以使用自定义 ID 生成器来生成 ID

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "XyzIdGenerator")
@GenericGenerator(name = "XyzIdGenerator",
strategy = "com.mycompany.myapp.id.BigIntegerSequenceGenerator",
parameters = {
@Parameter(name = "sequence", value = "xyz_id_sequence")
})
public BigInteger getId()
{
return id;
}


package com.mycompany.myapp.id;

import org.hibernate.id.SequenceGenerator;

public class BigIntegerSequenceGenerator
extends SequenceGenerator
{
@Override
public Serializable generate(SessionImplementor session, Object obj)
{
...
}
}

并在生成函数中定义逻辑。

关于java - Spring 唯一 ID 为具有 9 位数字的整数 - 不是序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38867907/

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