当前位置: 首页 > 面试题库 >

Hibernate表类需要可序列化吗?

钱旻
2023-03-14
问题内容

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

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

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


问题答案:

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

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

2.1对实体类的要求

(…)

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

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

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

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



 类似资料:
  • 问题内容: 我继承了一个Websphere Portal项目,该项目使用Hibernate 3.0连接到SQL Server数据库。 这个项目中大约有130个Hibernate表类。它们都实现了可序列化。它们均未声明serialVersionUID字段,因此Eclipse IDE对所有这些类均显示警告。 这些类是否真正需要实现Serializable? 如果是这样,是否有任何工具可以一次将生成的s

  • 我读过一些关于hibernate的话题 “如果实体实例作为分离对象通过值传递,例如通过会话bean的远程业务接口,则类必须实现可序列化接口。”(c) 我有:使用Hibernate的简单Spring MVC项目。我有MyEntityDataTable,并且可以通过应用程序中的用户编辑它。 > 用户向getMyEntity()发出请求,并获取空的MyEntity对象 然后在表单中他设置了所有需要的参数

  • 问题内容: 我在android / java中对Location的子类进行序列化遇到了麻烦 位置不可序列化。我有一个名为FALocation的第一个子类,它没有任何实例变量。我已经宣布它可序列化。 然后,我有一个名为Waypoint的第二个类,看起来像这样: 序列化工作正常。 反序列化会产生跟随翼异常(腿对象包含一个航路点): 问题答案: 序列化位置绝对必要吗?也许您可以将其标记为瞬态,并在反序列

  • 问题内容: 有谁知道那里是否有一个能够从实体类中剥离Hibernate集合以使其可序列化的框架?我看了一下BeanLib,但它似乎只做实体的深层副本,而不允许我为实体类中的集合类型指定实现映射。BeanLib当前不适用于Hibernate 3.5和Spring 3(我确实修改了源代码并能够使其正常工作,但我不想这样做)。吉利德(Gilead)似乎是一个选择,但似乎颇具侵略性。我宁愿使用简单的深度复

  • 问题内容: 当您使用Exception类扩展一个类(用于创建新的异常)时,会收到警告,提示您有一个。我知道这在序列化和反序列化过程中起着重要的作用,但是何时需要序列化我的Exception?谁能给我一个实际的案例,让我的自定义异常类具有序列化和反序列化? 问题答案: 这是因为所有异常的根类都实现了接口。默认情况下,所有异常都是可序列化的,这是一种语言设计决策,因为作者希望异常能够在没有任何特殊配置

  • 问题内容: 谁能告诉我Java中对序列化的需求是什么,并给我一个示例场景来说明需求?(我已经知道什么是序列化,我只想了解何时使用它)。 问题答案: 通常在需要通过网络发送数据或存储在文件中时使用序列化。数据是对象,而不是文本。 现在的问题是您的网络基础结构和硬盘是可以理解位和字节但不能理解JAVA对象的硬件组件。 序列化是将Java对象的值/状态转换为字节,以便通过网络发送或保存它。 这类似于通过