map中包含BigDecimal类型返回给前端json报错
org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: java.math.BigDecimal cannot be cast to java.lang.String
解决办法
办法一、在代码层面转成string
Map<String, String> detailed = flightMapper.find(flightDTO);
for (Map.Entry<String, String> stringStringEntry : detailed.entrySet()) {
detailed.put(stringStringEntry.getKey(),String.valueOf(stringStringEntry.getValue()));
}
办法二、在mybatis层配置resultMap
<resultMap id="hismap" type="map">
<result column="zong" jdbcType="VARCHAR" javaType="string" property="zong"/>
<result column="zc" jdbcType="VARCHAR" javaType="string" property="zc"/>
<result column="yc" jdbcType="VARCHAR" javaType="string" property="yc"/>
</resultMap>
办法三、在源头解决,使用cast转换
SELECT
cast(sum( nvl( t.zong, 0 ) ) as VARCHAR2(10)) zong,
cast(sum( nvl( t.zc, 0 ) ) as VARCHAR2(10)) zc,
cast(sum( nvl( t.yc, 0 ) ) as VARCHAR2(10)) yc
FROM
dm.YK_LINK t