一尘不染

Hibernate表类需要可序列化吗?

hibernate

我继承了一个使用Hibernate 3.0连接到SQL Server数据库的Websphere Portal项目。

这个项目中大约有130个Hibernate表类。它们都实现了可序列化。它们均未声明serialVersionUID字段,因此Eclipse
IDE对所有这些类均显示警告。

这些类是否真正需要实现Serializable?
如果是这样,是否有任何工具可以一次将生成的serialVersionUID字段添加到大量类中(只是为了消除警告)?


阅读 263

收藏
2020-06-20

共1个答案

一尘不染

这些类是否真正需要实现Serializable?

JPA规范(JSR 220)对其进行了很好的总结(对Hibernate同样适用):

2.1对实体类的要求

(…)

如果实体实例将作为分离对象通过值传递(例如,通过远程接口),则实体类必须实现该Serializable接口。

因此,严格来说,这不是必需的,除非您需要将分离的实体通过电线发送到另一层,迁移到另一个群集节点,存储在HTTP会话中,等等。

如果是这样,是否有任何工具可一次将生成的serialVersionUID字段添加到大量类中

我认为您可以使用序列号(Ant)Tasks批处理此任务

2020-06-20