通过注释使用Hibernate UUIDGenerator
|
我正在按以下方式使用我的uuid:
@Id
@GeneratedValue(generator = \"uuid\")
@GenericGenerator(name = \"uuid\", strategy = \"uuid\")
@Column(name = \"uuid\", unique = true)
private String uuid;
但我收到了一个聪明的Hibernate警告:
使用
org.hibernate.id.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;
没有找到相关结果
已邀请:
8 个回复
讼乐
:
见5.1.2.2.1。各种其他发电机。
室邢
我希望您正在使用Hibernate 3.5。
凄挡
注意\“ uuid2 \”而不是\“ uuid \”。
砷竣阿
在MySQL中将
列的类型定义为type9ѭ,或者在其他SQL实现中等效。
乏摩纶誊伟
青董据零
这应该会对性能产生一些影响: 消耗的尺寸大于
水化后,“ 14”实例比“ 15”实例消耗更多的内存:作为字符串的UUID为112字节,而对于“ 16”实例则为32字节(即两个long和obj标头)。 但是,使用基于字符串的UUID更加容易-编写查询更容易,并且您可以看到表的内容。 在Hibernate 5.3上测试
稼悸
类型声明字段成员的同时使用
。 注意,在MySQL中,将字段长度从255减少到36时,ѭ19很重要。 请注意,在PostgreSQL中,您应该改用
。
翰冒绢县
这是在Hibernate 5.0.11.FINAL中对uuid生成器使用批注的正确方法。 注意:不建议使用IT。