为什么类实现了Serializable接口?


问题内容

@Entity
public class Husband implements Serializable {

   @Id
   private int id;

   private String name;

   @OneToOne
   private Wife wife;

}

@Entity
public class Wife implements Serializable {

   @Id
   private int id;

   private String name;

   @OneToOne(mappedBy="wife")
   private Husband husband;

}
  1. Serializable广义上是什么?
  2. 类为什么实现Serializable接口?
  3. 为什么丈夫成员一个人只有@OnetoOne(mappedBy =“ Wife”),而妻子成员却没有@OnetoOne(mappedBy =“ husband”)

问题答案:
  1. 广义上讲,序列化是Java为开发人员提供的将任何对象的状态持久保存到持久存储中的方式。

  2. 如果开发人员出于某种原因希望将其编码类的实例保留到后备存储,则需要将该类声明为实现Serializable。

  3. 上面的代码代表了丈夫和妻子之间的一对一关系。这基本上意味着每个妻子都与一个丈夫有关系,每个丈夫都与一个妻子有关系。:-)同样在上述关系中,丈夫是关系的主人(以实体关系术语),这就是为什么妻子说它是由丈夫映射/关联到丈夫的,而不是相反的。这意味着丈夫确定了自己的妻子,而不是相反。