Использование Hibernate UUIDGenerator через аннотации
Я использую свой uuid следующим образом:
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid")
@Column(name = "uuid", unique = true)
private String uuid;
но я получаю умный спящий режим предупреждение:
используя орг.гибернации.ИД.UUIDHexGenerator который не генерирует IETF RFC 4122 совместимые значения UUID; рассмотрите возможность использования org.hibernate.id. UUIDGenerator вместо
поэтому я хочу переключиться на org.hibernate.id.UUIDGenerator
, теперь мой вопрос в том, как я должен сказать это генератору Hibernate. Я видел, что какой-то парень использовал его как "hibernate-uuid" - так вот что у меня есть пробовал, но с отрицательным результатом:
@Id
@GeneratedValue(generator = "hibernate-uuid")
@GenericGenerator(name = "hibernate-uuid", strategy = "hibernate-uuid")
@Column(name = "uuid", unique = true)
private String uuid;
6 ответов:
Он должен быть!--1-->:
... @GenericGenerator(name = "uuid", strategy = "uuid2") ...
посмотреть 5.1.2.2.1. Различные дополнительные генераторы.
HibernateDoc говорит, что вы можете использовать следующее:
@Id @GeneratedValue(generator="system-uuid") @GenericGenerator(name="system-uuid", strategy = "uuid") @Column(name = "uuid", unique = true) private String uuid;
Я надеюсь, что вы используете Hibernate 3.5.
попробовать...
@Id @GeneratedValue(generator = "uuid2") @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(name = "uuid", columnDefinition = "BINARY(16)") public UUID getId() { return id; } public void setId(UUID i) { id = i; }
обратите внимание на "uuid2 "в отличие от"uuid".
Неизвестный Идентификатор.генератор: hibernate-uuid
@Id @GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "org.hibernate.id.UUIDGenerator") @Column(name = "id", unique = true) public String getId() { return id; } public void setId(String id) { this.id = id; }