Генератор первичного ключа идентификатора строки в 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;
Посмотрите на пример