JPA/Hibernate 中的字符串 ID 主键生成器

String ID Primary Key generator in JPA/Hibernate

我知道我们可以生成一个随机 UUID -

@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
private String myId;

但是 UUID 是一个字符串,如果大小为 32。我如何生成一个大小为 6 的随机字母数字字符串并存储为 ID?

我想将其存储在 MongoDB

您必须通过实施休眠的 IdentifierGenerator.

创建自定义 ID 生成器
public class SomeCustomGenerator implements IdentifierGenerator {

    @Override
    public Serializable generate() {...}
}

然后使用它:

@Id
@GeneratedValue(generator = "cust-generator")
@GenericGenerator(name = "cust-generator", strategy = "com...generator.SomeCustomGenerator")
private String myId;

看看example