具有不是实体的字段的EJB3持久性

时间:2011-01-14 12:13:09

标签: java jpa

我有以下情况

@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吗?

1 个答案:

答案 0 :(得分:4)

基本上,是的,尽管这里还有其他事情发生。

由于AnotherClass既不是@Entity也不是@Embeddable,因此JPA可能会尝试将其序列化为二进制字段。它似乎正在尝试这一点,但NotSerializableException表明MyEntityAnotherClass 的其他字段不是可序列化的,从而导致异常。

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