【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.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

 

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

 

时间: 2024-10-07 01:07:52

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

测试hibernate报错:无法加载hbm.xml映射文件

问题描述 测试hibernate报错:无法加载hbm.xml映射文件 hibernate配置文件里,也是加载了此映射文件的哦 解决方案 解决办法---------映射文件User.hbm.xml中,class标签的name属性要上全限定类名:class name="com.cailikun.domain.User" 解决方案二: http://xiaoyaocao.iteye.com/blog/1837133

hibernate报错

问题描述 数据库为:mysql,数据库表:user,主键为usercode和comcodehibernate的配置文件user.hbm.xml如下:<classname="com.oms.bean.user"table="user"catalog="omsdb"><composite-idname="id"class="com.oms.bean.OmuserId"><key-p

hibernate报错unexpected token: mo near lin

问题描述 运行了半天报这个错误Exceptioninthread"main"org.springframework.orm.hibernate3.HibernateQueryException:unexpectedtoken:monearline1,column309[selectbrandfromcn.webstudio.bean.McurwDataCampaignBrandasbrandINNERJOINbrand.mcurwDataTeamasteamINNERJOINbrand

spring集成hibernate 报错 The application must supply JDBC connections

问题描述 Caused by: java.lang.UnsupportedOperationException: The application must supply JDBC connectionshibernate和spring的配置如图请帮我分析分析 解决方案 mysql驱动包有没有引入 ?

java hibernate运行起动报错

问题描述 java hibernate运行起动报错 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sess

frame-我在添加和修改是只要是有关日期类型的字段就会报错

问题描述 我在添加和修改是只要是有关日期类型的字段就会报错 我用的pastgresql数据库 ,Springmvc hibernate,Spring,frame框架! 错误信息是: Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'birthday'; nested exception is org.springframework.

mvn打包报错:Failed to load ApplicationContext

问题描述 mvn打包报错:Failed to load ApplicationContext ApplicationContext中扫描的包: /context:component-scan springmvc.xml中扫描的包: <context:component-scan base-package="com.aa.controller" /> 解决方案 问题已解决,pom配置文件中没有配置加载resources,所以加载不到resources目录下面的配置文件!加上配

make 调用informix esql 报错:-23101 Unable to load locale categories.

问题描述 make 调用informix esql 报错:-23101 Unable to load locale categories. 最近用make在linux环境下进行代码编译,结果报错 /opt/informix/bin/esql -e -g /home/source/informix.ecpp -23101 Unable to load locale categories. 由于以前没有接触过informix 加上编译的make也是别人写的 所以很纠结,求各位大大帮忙解决下啊 ,急啊

导入hibernate源码报错

问题描述 导入hibernate源码报错 50C 下载了源码以后导入了工程老是说有些类找不到或者别的错误但是下载jar的时候没出什么错误我翻墙了能请教哪位大神帮忙告诉一下吗还有就是某个类里面没有某个方法 解决方案 重新解压,不介意发来我给你运行下 解决方案二: 我用的我显得hibernate是 解决方案三: 下载的JAR包齐全么,你那截图里引进的类都没有啊 解决方案四: clean下整个工程 解决方案五: 如果说包确定倒了,而且是正确的,这个应该是jdk或者是你本地环境版本不一致造成的吧,看一下