前言:hibernate对于字符串类型主键支持UUID主键生成策略,(号称是世界上唯一的字符串)
运行环境:运行环境:hibernate5.2,mysql5.6
一,使用hibernate给String类型id设置uuid的两种方式
①,注解
@GeneratedValue(generator = "uuid")
@GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "uuid")
②,配置文件
<generator class="uuid.hex" />
备注:通过这两种方式都可以给String类型id设置uuid,由hibernate自动生成一个id值插入数据库。如果在数据库直接插入数据则必须传入主键id,未经过hibernate是不会生成id的。
二,根据uuid操作对象时应注意的问题
由于主键id为字符串类型,在做数据库操作(增删改查)时id必须用单引号引用,否则失败。
id值没有使用单引号引用,并且我们在没有使用hibernate给我们自动生成uuid时,自己手动*插入较短*的id时,mysql具有一定的兼容性,操作正常。