Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values;

时间:2022-08-26 10:43:18

项目部署,启动过程中有以下警告:

[WARN]: Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values; consider using org.hibernate.id.UUIDGenerator instead

查看项目中用户类的主键生成策略:

  1. @GenericGenerator(name = "system-uuid", strategy = "uuid.hex")
  2. @Id
  3. @GeneratedValue(generator = "system-uuid")
  4. @Column(name = "user_id")
  5. public String getUserId() {
  6. return userId ;
  7. }

经查询,Hibernate 3.6开始,如果有model的主键有uuid生成,就会报这个错误,采用最新的生成策略,改成下面的就会正常

  1. @Id
  2. @Column(length = 32, nullable = false)
  3. @GeneratedValue(generator = "uuid2" )   //指定生成器名称
  4. @GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator" )  //生成器名称,uuid生成类

XML配置:

原来的:

  1. <id name="id" type="string">
  2. <column name="ID" length="32" />
  3. <generator class="uuid" />
  4. </id>

现在改变后的:

  1. <id name="id" type="string">
  2. <column name="ID" length="36" />
  3. <generator class="uuid2" />
  4. </id>