关于Hibernate中Java实体类加载出现序列化异常
晚上跟着教程敲网上商城项目的时候(ssh框架写的),碰到了一个问题,就是如题所示的序列化异常问题,这个问题纠结了很久,最后发现了一个解决方法,虽然这篇文章可能几乎不会被人访问到,但是还是要写出来!
其实是这样的,我有个一级分类和二级分类(数据库对应的表,例如一级分类是家居,那么二级分类就是家居的分类),一级分类和二级分类是一对多关系,外键设置在多方(这个就不细说了),我出问题的时候,一级分类category这个实体类的hbm.xml文件里还没有配置好他的二级分类categorysecond相关信息,但是我的category里已经写了:
我已经设置了要对应的二级分类categorysecond,这个问题来了,我当时在敲某个功能时,并没有用到这个二级分类,但是我在dao里用hibernateTemplate已经使用了find方法连一级分类和二级分类全部查出来了!
如图,既然这里已经连根都查出来了,而我的category里又有二级分类这个属性?
这个是action代码,里面的红圈是上图dao层find后返回的list,而我这个list我要把它拿到jsp里把里面属性全部调取出来并显示,这时我的二级分类属性set集合确实属于懒加载状态!
而我们又知道,Struts2里的action数据需要通过valuestack来显示到页面,而valuestack的生命周期和request一样,很短暂,但是二级分类又属于懒加载属性(hibernate特性),而这个懒加载属性又需要一个可以用来存储他的地方,需要存到哪?硬盘或者数据库,而这个时候的一级分类就要对二级分类负责,category需要实现序列化才有能力将categorysecond序列化到其他地方,以便他日获取!!
关于Hibernate中Java实体类加载出现序列化异常的更多相关文章
- Java : 实体类不能序列化异常
当修改实体类之后调用接口出现不能序列化的异常时,一定要检查实体之间的关系是否都是正确的. could not serialize; nested exception is org.hibernate. ...
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- JavaWeb_(Hibernate框架)Hibernate中创建实体
Hibernate中创建实体 创建实体五个基本规则 --提供无参的构造器 --成员变量的私有化,提供get.set方法,提供属性 --尽量使用包装类型 --主键(一定要有) --不要加final(hi ...
- Hibernate中Java对象的三种状态
Hibernate中Java对象的三种 ...
- Hibernate中的实体规则、对象状态和进阶-一级缓存
一.hibernate中的实体规则 1.实体类创建的注意事项 2.主键类型 3.主键生成策略 (1)代理主键 (2)自然主键 二.hibernate中的对象状态 1.对象分为三种状态 2.三种状态的转 ...
- (转)Hibernate框架基础——在Hibernate中java对象的状态
http://blog.csdn.net/yerenyuan_pku/article/details/52760627 在Hibernate中java对象的状态 Hibernate把对象分为4种状态: ...
- Hibernate 系列 07 - Hibernate中Java对象的三种状态
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...
- hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...
- Hibernate中Query.list()方法报IllegalArgumentException异常
最近在使用Hibernate开发项目,在写好hql语句,并初始化Query对象,执行Query.list()方法时,应用报IllegalArgumentException异常.经网上查询,现已经基本决 ...
随机推荐
- gitlab操作笔记
基本命令 准备 1. 安装所需命令 sudo yum install curl openssh-server openssh-clients postfix cronie -y2. 安装SSH sud ...
- O004、启动第一个KVM虚机
参考https://www.cnblogs.com/CloudMan6/p/5249270.html 本节演示如何使用 virt-manager 启动 KVM 虚机, 提前下载一个 cirro ...
- ubuntu18.04系统安装及php7.2,apache2,mysql8,git,svn,composer,vs code 到安装 php 扩展配置php.ini 实现 laravel5.8 运行
简介:记录自己从系统安装到环境配置完毕运行laravel的记录 • 下载ubuntu18.04桌面版 ○ ubuntu18.04中国官网 https://cn.ubuntu.com ...
- Vue与Angular以及React的三者之间的区别
1.与AngularJS的区别 相同点:都支持指令:内置指令和自定义指令:都支持过滤器:内置过滤器和自定义过滤器:都支持双向数据绑定:都不支持低端浏览器. 不同点:AngularJS的学习成本高,比如 ...
- js 重要函数
1. Array.some some() 方法用于检测数组中的元素是否满足指定条件(函数提供) 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测.如果没有满足条件的元素,则返 ...
- 服务命令(systemctl的使用)
常用的service与systemctl命令的对比 应用举例: ●start:开启服务 ●stop:停止服务 ●status:参数来查看服务运行情况 ●restart:重新加载服务 应用举例·: #启 ...
- Django 数据库模块 单独使用
pip install django pip install psycopg2 pip install mysqlclient Entity.py from django.db import mode ...
- 解决xshell小键盘输入时串码(干货!!)
点击文件——属性 点击终端,修改为Linux即可
- deepin下挂载的的Windows系统(NTFC)目录怎么是只读的???
关键命令: df-h sudo ntfsfix /dev/sda4 重启 参考博客:深度官网问题之大神回复
- 创建CUDA项目
输出选择X64 .cu文件属性: 常规-项类型:CUDA C/C++ 项目属性: 平台:活动(x64) CUDA C/C++ - Common-Target Machine Platform: 64- ...