当前位置: 首页 > 知识库问答 >
问题:

Hibernate实体可序列化

秦飞航
2023-03-14

我读过一些关于hibernate的话题

“如果实体实例作为分离对象通过值传递,例如通过会话bean的远程业务接口,则类必须实现可序列化接口。”(c)

我有:使用Hibernate的简单Spring MVC项目。我有MyEntityDataTable,并且可以通过应用程序中的用户编辑它。

>

  • 用户向getMyEntity()发出请求,并获取空的MyEntity对象
  • 然后在表单中他设置了所有需要的参数

    然后将更新的我的实体发送到服务器

    问题:据我所知,用户在填写表单时会拥有myEntity对象。因此,myEntity处于分离状态。但是,MyEntity没有实现可序列化

    我的问题:

    >

  • 为什么它在没有MyEntity实现Serializable的情况下工作?

    我对我的所有实体都有相同的方案(如上所述)。我是否需要实现可序列化?

  • 共有2个答案

    邓德本
    2023-03-14

    为什么它在没有MyEntity实现Serializable的情况下工作?

    Hibernate不需要序列化实体。仅当您要通过电线(例如,远程接口)发送分离的对象时才需要它

    我对所有的实体都有相同的方案(如上所述)。我需要实现可序列化吗?

    是的,如果你想通过电线发送这个东西。否则不行。

    公冶宏深
    2023-03-14

    Hibernate不要求实体是可序列化的

    “如果实体实例作为分离对象通过值传递,例如通过会话bean的远程业务接口,则类必须实现可序列化接口。”(c)

    该语句是一个常见的混淆源,因为它与Hibernate无关。实际上,这意味着如果您计划在需要序列化的上下文中使用实体,则它们应该是可序列化的

    由于Spring MVC并不要求模型属性也是< code>Serializable(除非您希望使用< code>@SessionAttributes将会话持久性用于存储在会话中的属性),因此您不需要担心您的情况中的可序列化性。

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

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

    • 我试图用angularjs和SpringMVC构建一个应用程序。我有两个类Privance和Comunidad。: 在我的控制器中: 有人能帮我举个简单的例子吗?

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

    • 问题内容: 我可以为一个实体使用多个序列生成器吗? 问题答案: 你不能。该生成器仅适用于标识符列。 确保使用脚本(例如)创建此序列: 然后使用如下映射:

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