一、问题描述
Resolved [org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.example.propertymanagement.entity.R["list"]->java.util.ArrayList[0]->com.example.propertymanagement.entity.Payment_$$_jvstd3b_0["handler"])]
大意是,`com.example.propertymanagement.entity.R["list"]`要转换成Json,转换失败。
问题代码段:
/**
* 获取用户需缴费单列表
* @return
*/
@RequestMapping("/myList")
public R myList(@RequestBody Integer id){
List<Payment> list = paymentService.getByUserId(id);
System.out.println(list);
Map<String,Object> map = new HashMap<>();
map.put("list",list);
return R.ok(map);
}
二、解决方法
既然帮转json转不了,那就自己转json。
/**
* 获取用户需缴费单列表
* @return
*/
@RequestMapping("/myList")
public R myList(@RequestBody Integer id){
List<Payment> list = paymentService.getByUserId(id);
Object json = JSON.toJSON(list); //自己将数据转为json
Map<String,Object> map = new HashMap<>();
map.put("list",json);
return R.ok(map);
}