具有PersistenceCapable批注的类尝试存储非持久性类型的实例

时间:2012-07-06 18:35:44

标签: jdo objectdb

使用ObjectDB [ObjectDB 2.4.1] javax.jdo.JDOUserException 尝试存储非持久类型com.A的实例

@PersistenceCapable
public abstract class B
{
...
@Embedded
protected com.A a = new A();

}

不幸的是,我们已经使用了库中的A类多年,而且还没有可用的源代码,我不能在com.A.java上添加PersistenceCapable注释。我该怎么办?

修改

我认为答案是为A类添加package.jdo。但我仍然不明白为什么JDO让我添加注释或在.jdo文件中为我想要保留的每个类创建一个条目。我希望这可以通过Serializable接口以某种方式驱动。

1 个答案:

答案 0 :(得分:0)

默认情况下禁用ObjectDB中的序列化,以鼓励使用JPA / JDO可持久类型(实体类,具有持久性的类,可嵌入类),这些类型在可能的情况下更有效。

但是,当需要序列化时,您可以启用它,如ObjectDB manual

中所述

然后您应该能够在ObjectDB数据库中存储可序列化实例的实例。