java.math.BigDecimal is not a supported Java type

问题描述:

前端查询后端的pcs总数字段,此字段需要从mydsql的db中获取。PCS字段类型为decimal(26,6),于是打算在response中使用 BigDecimal pcs来接收

结果:

报错Thrift class ‘DTO’ field ‘pcs’ type ‘java.math.BigDecimal’ is not a supported Java type

原因:

Thrift 不支持BigDecimal

Thrif支持的数据类型

https://www.cnblogs.com/horace/p/4415748.html

解决:

需要将bigdecimal 与double转换

https://www.cnblogs.com/Wenxu/p/10341182.html

规范

  1. 属性 ID 可以顺序追加,不可更改已有属性 ID & 数据类型

  2. 参数支持的容器类型: List、Set、Map

  3. 自定义异常必须继承自 AbstractThriftException,同时重写toString方法(AbstractThriftException的toString方法不够明确)

  4. Thrift 注解代码 和IDL生成的目标代码, 不能相互引用

  5. 所有的 POJO 类属性强烈建议使用包装数据类型,如果用基础类型的话无法使用IDL方式里的isSet来判断某个属性是否被赋值过。

  6. RPC 方法的返回值必须使用包装数据类型

  7. RPC 方法的参数如果是包装数据类型(Integer、Long等),同时又传null的话,服务端收到时会分配对应的基础类型的默认值。

    (注意:如果是对象内部的字段是包装数据类型的话,客户端传null值,若定义字段时有默认值,服务端会收到此值,否则收到null值)

  8. 一个类只能有一个带有@ThriftConstructor注解的构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值