当前位置:   article > 正文

SpringBoot系列---【id类型为Long,前端接收到的数据和后端返回数据不一致的问题,导致修改和删除失效】...

前端获取的商品id与后端id不一致spring boot

1.问题:

前端发现,修改和删除的时候,修改了,删除了之后,结果查看详情和列表的时候,数据仍然还是以前的数据。

2.分析

查看接口文档调用接口,发现返回的id和数据库的id一致,通过前端ajax调用,用F12的network查看的响应结果,发现id和数据库的id不一样,最后几位变成了0。

这就是典型的Long类型精度丢失的问题。

3.解决方案

方法一:全局解决方案,统一给前端返回字符串

  1. import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  2. import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import java.math.BigInteger;
  6. @Configuration
  7. public class JacksonConfig {
  8. /**
  9. * Jackson全局转化long类型为String,解决jackson序列化时传入前端Long类型缺失精度问题
  10. */
  11. @Bean
  12. public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
  13. return jacksonObjectMapperBuilder -> {
  14. jacksonObjectMapperBuilder.serializerByType(BigInteger.class, ToStringSerializer.instance);
  15. jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance);
  16. };
  17. }
  18. }

方法二:字段上加注解

  1. @JsonSerialize(using = ToStringSerializer.class)
  2. private Long id;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/357005?site
推荐阅读
相关标签
  

闽ICP备14008679号