可序列化和不可序列化对象保存到数据库之间的区别
Posted
技术标签:
【中文标题】可序列化和不可序列化对象保存到数据库之间的区别【英文标题】:Difference between Serializable and non Serializable object save into database 【发布时间】:2015-02-14 08:40:54 【问题描述】:当对象可序列化或不可序列化时,将数据对象保存到数据库有什么区别。
例如:我有一个名为 Book 的域类
class Book implements Serializable
private int id;
private String name;
//getter and setter
没有实现Serializable接口
class Book
private int id;
private String name;
//getter and setter
现在我要将 Book 对象存储到数据库表中。 我知道在实现 Serializable 时,数据应该转换为字节流。那么将数据保存到db时,以上两个选项有什么区别
谁能纠正我 谢谢 阿米拉
【问题讨论】:
【参考方案1】:总的来说,没有区别。将实体作为Serializable
用于持久性不是必须的,并且严格取决于您用于持久层的框架。
例如Hibernate 根本不需要,尽管根据 JPA 规范创建实体 Serializable
是最佳实践 -
如果将实体实例作为分离对象按值传递 (例如,通过远程接口),实体类必须实现 可序列化接口。
因此,如果您需要分离实体,例如在 HTTP 会话中,或传递到另一层、序列化它们等 - 您需要将实体设置为 Serializable
objects。
【讨论】:
以上是关于可序列化和不可序列化对象保存到数据库之间的区别的主要内容,如果未能解决你的问题,请参考以下文章