我继承了一个使用 Hibernate 3.0 连接到 SQL Server 数据库的 Websphere Portal 项目。
这个项目中大约有 130 个 Hibernate 表类。它们都实现了可序列化。它们都没有声明 serialVersionUID 字段,因此 Eclipse IDE 显示所有这些类的警告。
这些类是否真的需要实现可序列化?
如果是这样,是否有任何工具可以一次将生成的 serialVersionUID 字段添加到大量类中(只是为了使警告消失)?
我继承了一个使用 Hibernate 3.0 连接到 SQL Server 数据库的 Websphere Portal 项目。
这个项目中大约有 130 个 Hibernate 表类。它们都实现了可序列化。它们都没有声明 serialVersionUID 字段,因此 Eclipse IDE 显示所有这些类的警告。
这些类是否真的需要实现可序列化?
如果是这样,是否有任何工具可以一次将生成的 serialVersionUID 字段添加到大量类中(只是为了使警告消失)?
这些类是否真的需要实现可序列化?
JPA 规范(JSR 220)很好地总结了它(同样适用于 Hibernate):
2.1 对实体类的要求
(...)
如果一个实体实例作为一个分离的对象按值传递(例如,通过一个远程接口),实体类必须实现该
Serializable
接口。
因此,严格来说,这不是必需的,除非您需要将分离的实体通过线路发送到另一层、迁移到另一个集群节点、存储在 HTTP 会话中等。
如果是这样,是否有任何工具可以一次将生成的 serialVersionUID 字段添加到大量类中
我认为您可以使用Serial version (Ant) Tasks批量处理。
Hibernate 根本不需要可序列化。
Eclipse 的“清理”命令可以做到这一点。但是,它还有更多功能,因此在将其用于整个包之前对其进行测试并优化清理和格式设置。
我不熟悉可以为一堆类自动执行此操作的工具,尽管您可以编写一个脚本。
如果您使用 Eclipse 机械地执行此操作,那么每节课花费的时间不应超过 4-5 秒,这可能仍然比脚本更快。
如果是这样,是否有任何工具可以一次将生成的 serialVersionUID 字段添加到大量类中(只是为了使警告消失)?
您可以在 Eclipse 的编译器设置中禁用此警告 - 无论是针对项目还是整个工作区。