我有以下情况
@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
提示MyEntity
或AnotherClass
的其他某些字段不可序列化,从而导致异常。
几乎可以肯定,您不希望AnotherClass
作为二进制文件持久化,因此需要对它进行注释,以告诉JPA如何持久化它。