在使用JPA 2/Hibernate共享主键时,为什么实体需要可序列化?

5

我有以下情况:

@Entity
class Image {
  @Id
  @GeneratedValue
  private Long id;

  ....
}

@Entity
class ImageData implements Serializable {
  @Id
  @OneToOne
  private Image image;

  ....
}

这一切都很正常,但是ImageData为什么需要可序列化?如果不是,我会收到需要它可序列化的异常:

 org.hibernate.MappingException: composite-id class must implement Serializable:...

我知道标识符需要可序列化,但为什么现在反过来了呢?

很奇怪 - 我的印象是所有JPA实体类都需要可序列化。 - Mike Baranczak
1
如果您没有任何特定于Hibernate的内容,可以尝试用EclipseLink替换它进行测试,并查看是否存在一致的行为。如果没有 - 提出问题。 - Bozho
可能是为什么复合ID类必须实现Serializable接口?的重复问题。 - Federico Sierra
1个回答

0

在 Hibernate 论坛上有一个关于类似主题的讨论,可能会回答你的问题,请看 这里


1
好的,他们还说具有复合ID的类需要是可序列化的,但没有说明原因... - suicide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接