开发者社区> angel挤一挤> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【hibernate 报错】No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer 【get和load的区别】

简介: 报错: 1 HTTP Status 500 - Could not write content: No serializer found for class org.hibernate.proxy.
+关注继续查看

报错:

1 HTTP Status 500 - Could not write content: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered 
2 to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: com.agen.entity.Product_$$_jvst2a_3["handler"]);
3  nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no 
4 properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: com.agen.entity.Product_$$_jvst2a_3["handler"])
View Code

出现这个问题,是因为:

 1 @ResponseBody
 2     @RequestMapping("/Updateproduct")
 3     @Transactional
 4     public Product updateProduct2(Product product){
 5         Product  product1 = productService.load(product.getProductId());
 6         if(product1 != null){
 7             product1.setProductName(product.getProductName());
 8             product1.setProductCre(product.getProductCre());
 9         }
10         
11         return product1;
12     }
View Code

这个方法中使用的load()获取到数据库中的这一条数据。

使用load()时,进入BUG模式可以看到,虽然获取到这条数据,但是你要看,却发现展示出来的这个对象的字段都是null。

 

但是其中是有值的!!

这样返回给前台,前台接收不到值,会跑出异常:

 

 

修改:

于是我们应该将load()方法修改为get()方法

 1 /**
 2      * 进行产品修改操作
 3      * @return
 4      */
 5     @ResponseBody
 6     @RequestMapping("/Updateproduct")
 7     @Transactional
 8     public Product updateProduct2(Product product){
 9         Product  product1 = productService.get(product.getProductId());
10         if(product1 != null){
11             product1.setProductName(product.getProductName());
12             product1.setProductCre(product.getProductCre());
13         }
14         
15         return product1;
16     }
View Code

 

这样就能解决这个问题!!

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java Bean Validation 详解(下)
前言 最近维护一个老项目,项目使用最原始的Servlet,项目中充斥着各种类似判空的简单校验,为了减少重复代码,因此需要手动引入 Java 的 Bean Validation。
0 0
Java Bean Validation 详解(上)
前言 最近维护一个老项目,项目使用最原始的Servlet,项目中充斥着各种类似判空的简单校验,为了减少重复代码,因此需要手动引入 Java 的 Bean Validation。
0 0
java.lang.IllegalStateException: Cannot load configuration class: org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration
java.lang.IllegalStateException: Cannot load configuration class: org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration报错问题处理
0 0
Failed to bind properties under 'spring.datasource.type' to java.lang.Class
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/80898952 刚创建的 Spring Boot 2.
5999 0
【hibernate】错误:org.hibernate.HibernateException: identifier of an instance of com.agen.entity.Monthdetail was altered from xx to xx
所报错误: org.hibernate.HibernateException: identifier of an instance of com.agen.entity.Monthdetail was altered from 40288f8e5ac675fe015ac67725c40001 to ...
887 0
SSH整合时执行hibernate查询报错:java.lang.ClassCastException: com.ch.hibernate.Department_$$_javassist_0 cannot be cast to javassist.util.proxy
  今天在整合ssh三个框架时,有一个功能,是查询所有员工信息,且员工表和部门表是多对一的映射关系,代码能正常运行到查询得到一个List集合,但在页面展示的时候,就报异常了, java.lang.
682 0
org.hibernate.LazyInitializationException: could not initialize proxy - no
错误页面提示 could not initialize proxy - no Session 控制台 org.hibernate.LazyInitializationException: could not initialize proxy - no Session 病症:这是一个lazy使用后的Exception,使用迟时加载,在session(hibernate里的session),关闭后使用该对象的未加载变量,也就是说session已经关闭,没有保存到内存中,然后你使用了,导致该异常。
574 0
+关注
angel挤一挤
【任何0基础都能看懂的步骤和解决方法!】
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载