hibernate或者mybatis中,持久层PO实现序列化Serializable的原因
来源:互联网 发布:压实度计算软件 编辑:程序博客网 时间:2024/05/06 20:26
以前用SSH的时候,跟着别人实现序列化,记得好像是跟建索引有关,但是为什么要实现序列化,自己不明确。
Hibernate的实体类中为什么要继承Serializable?
hibernate有二级缓存,缓存会将对象写进硬盘,就必须序列化,以及兼容对象在网络中的传输 等等。
java中常见的几个类(如:Interger、String等),都实现了java.io.Serializable接口。
实现 java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化。序列化类的所有子类本身都是可序列化的。这个序列化接口没有任何方法和域,仅用于标识序列化的语意。
确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自 不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况 下就要用到对象的序列化。
只有序列化的对象才可以存储在存储设备上。为了对象的序列化而需要继承的接口也只是一个象征性的接口而已,也就是说继承这个接口说明这个对象可以 被序列化了,没有其他的目的。之所以需要对象序列化,是因为有时候对象需要在网络上传输,传输的时候需要这种序列化处理,从服务器硬盘上把序列化的对象取 出,然后通过网络传到客户端,再由客户端把序列化的对象读入内存,执行相应的处理。
java中常见的几个类(如:Interger、String等),都实现了java.io.Serializable接口。
实现 java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化。序列化类的所有子类本身都是可序列化的。这个序列化接口没有任何方法和域,仅用于标识序列化的语意。
确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自 不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况 下就要用到对象的序列化。
只有序列化的对象才可以存储在存储设备上。为了对象的序列化而需要继承的接口也只是一个象征性的接口而已,也就是说继承这个接口说明这个对象可以 被序列化了,没有其他的目的。之所以需要对象序列化,是因为有时候对象需要在网络上传输,传输的时候需要这种序列化处理,从服务器硬盘上把序列化的对象取 出,然后通过网络传到客户端,再由客户端把序列化的对象读入内存,执行相应的处理。
将二级缓存中的内容持久化保存下来,便于恢复缓存的信息,hibernate的缓存机制通过使用序列化,断定应该是基于序列化的缓存,如没有 serializable接口,在序列化时,使用objectOutputStream的write(object)方法将对象保存到文件时将会出现异常。
Hibernate并不要求持久化类必须实现java.io.Serializable接口,但是对于采用分布式结构的Java应用,当Java对象在不同的进程节点之间传输时,这个对象所属的类必须实现Serializable接口,此外,在Java Web应用中,如果希望对HttpSession中存放的Java对象进行持久化,那么这个Java对象所属的类也必须实现
本文转自:http://blog.sina.com.cn/s/blog_807c84950101bqan.html
0 0
- hibernate或者mybatis中,持久层PO实现序列化Serializable的原因
- Web分层中持久层PO类序列化
- spring持久类po或者javabean为什么常常实现序列化?
- spring持久类po或者javabean为什么常常实现序列化?
- 在没有持久化层的工程中添加mybatis
- 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
- 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
- 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用
- 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用
- hibernate中PO(持久化对象)与POJO(普通的JavaBean)
- 同时支持mybatis,hibernate等技术的通用持久层实现思路
- 持久层框架的比较Hibernate与 MyBatis 胡俊铭
- Java中对象的序列化(实现java.io.Serializable)
- java中实现序列化serializable接口的问题
- Android中序列化的实现?使用Serializable还是Parcelable
- hibernate 五 hibernate 中提倡持久类实现equals()和hashCode()的原因分析
- Hibernate中的持久化类(po)
- Hibernate 持久层通用实现
- MFC总结(10) ---- MFC中CFileDialog 实现浏览文件和浏览目录功能
- android:windowSoftInputMode属性详解
- windows VS 下打印堆栈日志
- c# 中关于panel 的说明
- 附件上传时,浏览器安全设置影响获取的路径,出现fakepath目录
- hibernate或者mybatis中,持久层PO实现序列化Serializable的原因
- 反斜杠在c/c++的作用
- 轮播图第三方代码
- Java学习笔记(十四)IO流及网络基础
- winform panel 中 子内容引用父内容的办法
- UITableView 滑动Cell删除
- 物联网时代的35款开源工具
- webrtc 相关标准
- Framebuffer 画点,画线,画多边形,画圆