Генератор первичного ключа идентификатора строки в JPA/Hibernate

Я знаю, что мы можем генерировать случайный UUID -

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

Но UUID является строкой, если размер 32. Как я могу сгенерировать случайную буквенно-цифровую строку размера 6 и сохранить как идентификатор?

Я хочу сохранить это в MongoDB

1 ответ

Решение

Вам нужно будет создать собственный генератор идентификаторов, реализовав hibernate IdentifierGenerator,

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;

Посмотрите на пример

Другие вопросы по тегам