首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过注释使用Hibernate UUIDGenerator

通过注释使用Hibernate UUIDGenerator
EN

Stack Overflow用户
提问于 2011-06-15 19:14:13
回答 8查看 103.4K关注 0票数 83

我使用我的uuid如下所示:

代码语言:javascript
复制
@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“-所以这就是我尝试过的,但结果是否定的:

代码语言:javascript
复制
@Id
@GeneratedValue(generator = "hibernate-uuid")
@GenericGenerator(name = "hibernate-uuid", strategy = "hibernate-uuid")
@Column(name = "uuid", unique = true)
private String uuid;
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-06-15 19:22:59

应该是uuid2

代码语言:javascript
复制
...
@GenericGenerator(name = "uuid", strategy = "uuid2")
...

参见5.1.2.2.1. Various additional generators

票数 112
EN

Stack Overflow用户

发布于 2011-06-15 19:21:07

HibernateDoc说你可以使用下面的代码:

代码语言:javascript
复制
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(name = "uuid", unique = true)
private String uuid;

我希望你使用的是Hibernate 3.5。

票数 19
EN

Stack Overflow用户

发布于 2018-09-11 22:45:36

正如@natan在评论中指出的那样,如果你正在使用Hibernate 5,下面的代码就足够了:

代码语言:javascript
复制
@Id 
@GeneratedValue
private java.util.UUID id;

在MySQL中定义类型为BINARY(16)id列,或者在其他SQL实现中定义它的等价物。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6356834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档