服务端长度19位的long型主键,vue前端接收后,默2位会自动四舍五入
sys_user表,@tableId注解 ;新创建的人员,user_id长度根据雪花算法获取19位,此时前端获取时,就会四舍五入,造成获取数据错误;
网上给了方式:@JSONField(serializeUsing= ToStringSerializer.class) 按照这样,条件json注解;此时就需要把@tableId注解进行注释掉;此时会出现插入数据,获取user_id的错误问题;
请问有人具体处理过吗?怎么处理的;
其他相关表也需要按照这个逻辑处理吗?
-
2022-08-09
已自行处理:
使用fastjson配置方式;具体代码如下:
@Configuration
public class CustomFastJsonConfig {
@Bean
FastJsonHttpMessageConverter fastJsonHttpMessageConverter() {
//1.需要定义一个convert转换消息的对象
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
//2.添加fastJson的配置信息
FastJsonConfig fastJsonConfig = new FastJsonConfig();
//3.设置id字段为字符串
fastJsonConfig.setSerializeFilters((ValueFilter) (object, name, value) -> {
if ("id".equalsIgnoreCase(name)){
return value + "";
}
return value;
});
//4.在convert中添加配置信息.
converter.setFastJsonConfig(fastJsonConfig);
return converter;
}
}