MySQL中的UUID外部取值时错误

  • 在 MySQL 中,可以有如下几种途径实现唯一值:

    • 自增序列
    • UUID() 函数
    • 程序自定义

    MySQL 实现了 UUID,并且提供 UUID() 函数方便用户生成 UUID。

 SELECT UUID()
===>  3525f31e-6bbb-423b-92f5-9ef63110c2f7

在上面 MySQL 的 UUID() 函数生成中,针对UUID产生的值组成部分,分别如下:

  1. 前三组数字从时间戳中生成
  2. 第四组数字暂时保持时间戳的唯一性
  3. 第五组数字是一个 IEEE 802 节点标点值,保证空间唯一。使用 UUID() 函数,可以生成时间、空间上都独一无二的值
  • 在外部Java Spring通过SQL语句来查询数据库时,得到的表字段属性是UUID的值和数据里面的值不一样,这里只需要在java类中加上 @Type(type = “uuid-char”)属性,实际代码如下:
@Entity
@Table(name = "roles")
public class RoleDto implements Serializable {
  private UUID id;
  private String code;
  private String name;
  private int status;
  private UUID tenantId;


  @Id
  @Type(type = "uuid-char")
  @GeneratedValue
  public UUID getId() {
    return id;
  }

  public void setId(UUID id) {
    this.id = id;
  }

  @Basic
  @Column(name = "code")
  public String getCode() {
    return code;
  }

  public void setCode(String code) {
    this.code = code;
  }

  @Basic
  @Column(name = "name")
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  @Basic
  @Column(name = "status")
  public int getStatus() {
    return status;
  }

  public void setStatus(int status) {
    this.status = status;
  }

  @Basic
  @Type(type = "uuid-char")
  @Column(name = "tenant_id")
  public UUID getTenantId() {
    return tenantId;
  }

  public void setTenantId(UUID tenantId) {
    this.tenantId = tenantId;
  }
最后数据库中的UUID值和外部得到的UUID 不相同的问题就完美解决了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值