数据库里面uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符(GUID)一样。GUID是唯一的二进制数:世界上的任何两台计算机都不会生成重复的GUID值。
这个类型只有一些比较大的数据库才会有的,例如MSSQL2005,Oracle10,DB2等等,MySQL是没有的。
不同的数据库使用不同的函数初始化uniqueidentifier,例如微软的MSSQL2005就使用NEWID()这个函数。
在实体里面定义id属性如下:
@Id
@Column(columnDefinition="uniqueidentifier")
private UUID id = UUID.randomUUID(); //实例化实体类的时候初始化id
这里的UUID来自于java.util.UUID。
注意,要使用uniqueidentifier类型,如果不指定dialet,则实体类id的类型不可以是String或者其它,只能够是java.util.UUID。因为String不能够转为uniqueidentifier。
使用String:
@Id
@Column(columnDefinition="uniqueidentifier")
private String id = UUID.randomUUID().toString(); //实例化实体类的时候初始化id