我有以下情况
@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
吗?
答案 0 :(得分:4)
基本上,是的,尽管这里还有其他事情发生。
由于AnotherClass
既不是@Entity
也不是@Embeddable
,因此JPA可能会尝试将其序列化为二进制字段。它似乎正在尝试这一点,但NotSerializableException
表明MyEntity
或AnotherClass
的其他字段不是可序列化的,从而导致异常。
您几乎肯定不希望AnotherClass
作为二进制文件持久化,因此您需要对其进行注释以告诉JPA如何保留它。