我使用我的uuid如下所示:
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid")
@Column(name = "uuid", unique = true)
private String uuid;
但是我得到了一个聪明的休眠警告:
使用不生成符合IETF RFC4122的UUID值的org.hibernate.id.UUIDHexGenerator的
;请考虑改用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;
发布于 2011-06-15 19:22:59
应该是uuid2
...
@GenericGenerator(name = "uuid", strategy = "uuid2")
...
发布于 2011-06-15 19:21:07
HibernateDoc说你可以使用下面的代码:
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(name = "uuid", unique = true)
private String uuid;
我希望你使用的是Hibernate 3.5。
发布于 2018-09-11 22:45:36
正如@natan在评论中指出的那样,如果你正在使用Hibernate 5,下面的代码就足够了:
@Id
@GeneratedValue
private java.util.UUID id;
在MySQL中定义类型为BINARY(16)
的id
列,或者在其他SQL实现中定义它的等价物。
https://stackoverflow.com/questions/6356834
复制相似问题