SpringBoot提示No serializer found for class org.apache.ibatis.executor.loader
今天在做自己的SpringBoot项目时,改完代码后登录突然发现报错如下:
Caused by: 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
巴拉巴拉一大堆,总之意思就是jackson对某些属性没法序列化,而之前数据都是一样的,也没出现这个问题,那是什么原因导致的?
[v_act]产生原因:[/v_act]
产生这个问题的原因就是为了实现mybatis级联查询懒加载,添加了如下配置:
# MyBatis mybatis: # 配置全局懒加载 configuration: lazy-loading-enabled: true aggressive-lazy-loading: false
然后就出现了如上问题。
[v_act]解决办法:[/v_act]
1)方法1:这个解决办法很简单,就是在application.yml中新增配置如下:

程序员导航
优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站
spring:
jackson:
serialization:
FAIL_ON_EMPTY_BEANS: false
如果是application.properties文件就新增如下:
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
然后再去运行,发现问题就解决了。
2)方法2:就是在相关实体类上加上如下注解即可:
@JsonIgnoreProperties(value = { "handler" })
但总体而言,潘老师还是认为第一种方法更好,更简洁方便!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...



