我有以下情况

@Entity
public class myEntity implements Serializable {

    private AnotherClass anotherClass;
}


public class AnotherClass implements Serializable {

   private String ...
   private String ...


}


但是AnotherClass没有用@Entity注释。我可以成功部署我的bean,但是当我尝试持久化MyEntity类实例时,它给了我NoSerializableException

这是因为AnotherClass没有用@Entity注释吗?

最佳答案

从本质上讲,是的,尽管这里还有其他事情。

由于AnotherClass既不是@Entity也不是@Embeddable,JPA可能会尝试将其序列化为二进制字段。似乎正在尝试这样做,但是NotSerializableException提示MyEntityAnotherClass的其他某些字段不可序列化,从而导致异常。

几乎可以肯定,您不希望AnotherClass作为二进制文件持久化,因此需要对它进行注释,以告诉JPA如何持久化它。

09-12 17:25