当前位置: 代码迷 >> 综合 >> ID_WORKER 生成主键太长导致 js 精度丢失
  详细解决方案

ID_WORKER 生成主键太长导致 js 精度丢失

热度:37   发布时间:2024-03-07 23:30:21.0

JavaScript 无法处理 Java 的长整型 Long 导致精度丢失,具体表现为主键最后两位永远为 0,解决思路: Long 转为 String 返回

  • FastJson 处理方式

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();FastJsonConfig fjc = new FastJsonConfig();// 配置序列化策略fjc.setSerializerFeatures(SerializerFeature.BrowserCompatible);fastJsonConverter.setFastJsonConfig(fjc);converters.add(fastJsonConverter);
    }
    
  • JackJson 处理方式

    • 方式一

      // 注解处理,这里可以配置公共 baseEntity 处理
      @JsonSerialize(using=ToStringSerializer.class)
      public long getId() {return id;
      }
      
    • 方式二

      // 全局配置序列化返回 JSON 处理
      final ObjectMapper objectMapper = new ObjectMapper();
      SimpleModule simpleModule = new SimpleModule();
      simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
      objectMapper.registerModule(simpleModule);
      
  • 比较一般的处理方式:

      增加一个 public String getIdStr() 方法,前台获取 idStr

MyBatis-Plus常见问题