1.使用FastJson 将一个对象转成JSONObject 时 BigDecimal(整数,后面没有带0)变成了Integer
"10"--->10
"10.1"-->"10.1"
解决方案:在BigDecimal的字段上加上 @JSONField(serializeUsing = ToStringSerializer.class)
- 使用反射做bean对象的差异
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), compareObj);
这一行不能使用在基本类型上 例如 int boolean ,不然会报错
2022-12-12 10:08:44.955 DEBUG 6 --- [nio-7106-exec-6] o.s.data.mongodb.core.MongoTemplate : findOne using query: { "couponTemplateId" : "123681276426989568" } fields: { } in db.collection: shippool.coupon-template
java.lang.reflect.UndeclaredThrowableException
at com.icil.pinpal.coupon.service.impl.CouponServiceImpl$$EnhancerBySpringCGLIB$$a7832770.updateCouponTemplate(<generated>)
at com.icil.pinpal.coupon.controller.CouponController.updateCouponTemplate(CouponController.java:159)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
标签:FastJson,反射,java,invoke,sun,reflect,NativeMethodAccessorImpl,Bug
From: https://www.cnblogs.com/lyuSky/p/16976899.html