mybatis-plus IdWorker生成的Id和返回给前台的不一致

在使用Mybatis-Plus的IdWorker生成长整型ID时,由于Java Long类型数值传到前端导致超过JavaScript数字最大范围,使得前端显示的ID末尾两位始终为0。解决方案包括在BaseEntity中统一转换ID为String类型,或者全局处理,将所有Long类型响应数据转换为String,以避免前端数字溢出问题。
摘要由CSDN通过智能技术生成

为什么要取这个标题呢?因为如果情况和我遇到的一样,也不知道原因就会这么搜,比如我。?

问题描述

今天在公司项目中修改id的生成策略为mybatis-plus自带的IdWorker策略时,发现返回给前台的id竟然和数据库不一致。费解得很呐。

package net.mshome.twisted.tmall.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 数据库实体类的父类,必需字段
 *
 * @author tangjizhouchn@foxmail.com
 * @date 2019/9/6
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BaseEntity implements Serializable {
   

    private static final long serialVersionUID = 236424297319280526L;

    /**
     * 数据表主键,此处采用mybatis-plus自带的IdType.ID_WORKER策略
     */
    @TableId(value = "id", type = IdType.ID_WORKER)
    protected Long id;

    /**
     * 数据创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    protected LocalDateTime createTime;
    /**
     * 数据更新时间
     */
    @TableField(fill = Field
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值