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

sui*_*ide 5 java hibernate jpa serializable jpa-2.0

所以我有以下情况:

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

  ....
}

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

  ....
}
Run Code Online (Sandbox Code Playgroud)

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

 org.hibernate.MappingException: composite-id class must implement Serializable:...
Run Code Online (Sandbox Code Playgroud)

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

bre*_*777 0

Hibernate 论坛上有一个关于类似主题的讨论应该可以回答您的问题,请看这里