Hibernate表类是否需要Serializable?

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

这个项目中大约有130个Hibernate表类。 他们都实现了Serializable。 没有一个声明serialVersionUID字段,所以Eclipse IDE显示了所有这些类的警告。

有没有实际需要这些类来实现Serializable?
如果是这样,是否有任何工具来一次添加生成的serialVersionUID字段到大量的类(只是为了使警告消失)?

有没有实际需要这些类来实现Serializable?

JPA规范(JSR 220)总结得非常好(同样适用于Hibernate):

2.1对实体类的要求

(……)

如果一个实体实例被作为一个分离的对象(例如,通过一个远程接口)被传递,实体类必须实现Serializable接口。

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

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

我认为你可以使用Serial版本(Ant)任务进行批处理。

Eclipse的“ 清理 ”命令可以做到这一点。 然而,它也做了很多的事情,所以在整个软件包上使用它之前,先对它进行testing并优化清理和格式化设置。

Hibernate根本不需要可序列化。

我不熟悉一个工具,它会自动为一堆的类,但你可以写一个脚本。

如果你用Eclipse来机械地做到这一点,那么每个类不应该超过4-5秒,这可能比脚本还要快。

如果是这样,是否有任何工具来一次添加生成的serialVersionUID字段到大量的类(只是为了使警告消失)?

您可以在Eclipse的编译器设置中禁用此警告 – 对于项目或整个工作空间。