記錄兩個Bug 1.FastJson 2.反射
阿新 • • 發佈:2022-12-12
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)