Hibernate表类需要是Serializable吗?

Sco*_*eis 48 java orm hibernate serializable

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

这个项目中大约有130个Hibernate表类.它们都实现了Serializable.它们都没有声明serialVersionUID字段,因此Eclipse IDE会显示所有这些类的警告.

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

Pas*_*ent 64

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

JPA规范(JSR 220)很好地总结了它(同样适用于Hibernate):

2.1对实体类的要求

(......)

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

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

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

我认为您可以使用Serial版本(Ant)任务批量处理它.

  • 换句话说,所引用的规范说,“如果它需要可序列化(出于 Hibernate 以外的原因),则它需要是可序列化的”。典型的 Hibernate 用法不涉及 Serializable。 (2认同)

bma*_*ies 7

Hibernate根本不需要序列化.


Chr*_*ava 5

Eclipse的" 清理 "命令可以做到这一点.但是,它还可以进行更多测试,并在整个软件包上使用之前优化清理和格式设置.