Генератор строковых идентификаторов
какой самый простой способ реализовать идентификатор строки в jpa?
Пока что у меня есть
@Id
@GeneratedValue
private int id;
и то, что я хотел бы иметь, это что-то вроде
@Id
@GeneratedValue
private String id;
но если я использую его так, я получаю 'этот генератор id генерирует long, integer, short'.
Ответы
Ответ 1
Вы можете создать UUID из Java следующим образом:
UUID.randomUUID().toString();
Или, если ваш JPA поддерживает его, например, Hibernate, вы можете использовать:
@Id @GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
private String myId;
Подробнее об этом блоге.
Если вы используете Google для "JPA UUID", существует множество альтернатив.
Ответ 2
Если вы используете EclipseLink, вы можете использовать @UuidGenerator,
http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_uuidgenerator.htm#CFAFIIFC
Вы также должны иметь возможность преобразовать целое число последовательно в строку, если это необходимо.