分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Hibernate类没有找到序列化器解决方案

发布时间:2023-09-06 02:26责任编辑:熊小新关键词:Hibernate

Hibernate类没有找到序列化器解决方案

异常信息类似如下

No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.alibaba.fastjson.JSONObject["data"]->cn.zytao.taosir.auth.entity.Role_$$_jvst21b_0["handler"])

有道翻译如下

没有为org.hibernate.proxy.pojo.javassist类找到序列化器。没有发现创建BeanSerializer的属性(为了避免异常,请禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用链:com.alibaba.fastjson.JSONObject["data"]->cn. zytao.taosir.au.entity.role_ $$_jvst21b_0["handler"])

总之,没有为org.hibernate.proxy.pojo.javassist类找到序列化器。

原因:

hibernate会给被管理的pojo加入一个hibernateLazyInitializer属性,

然而我们在转json的时候,这个属性是不允许反射的,所以抛出了异常

我们可以去配置文件中添加一个配置

properties

spring.jackson.serialization.fail-on-empty-beans=false

yml/yaml

spring: ?jackson: ???serialization: ?????fail-on-empty-beans: false

这样就可以转换了

但是,hibernateLazyInitializer handler 两个也被作为参数转换成json

我们可以在实体类的声明上添加注解来解决,例如

@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler"}) ?public class Role implements Serializable { ???private static final long serialVersionUID = 1L; ???/** ????* 角色代码 ????*/ ???@Id ???private String roleCode;}

@JsonIgnoreProperties可以使得在转换的时候忽略掉这些属性

Hibernate类没有找到序列化器解决方案

原文地址:https://www.cnblogs.com/it-taosir/p/10129144.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved