我在应用引擎服务器上运行以下JDO代码。
我收到以下错误消息:
org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类“类”java.util.ArrayList“不可持久化。这意味着它要么没有增强,要么文件的增强版本不在CLASSPATH(或未被未增强的版本隐藏),或找不到该类的元数据/注释。“是不可持续的。这意味着它没有被增强,或者文件的增强版本不在CLASSPATH中(或者被未增强的版本隐藏),或者找不到类的元数据。
这是我的班级:
@PersistenceCapable(detachable="true")
class Store {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
@Element(dependent = "true")
private List<User> users;
List<User> getUsers() {
return users;
}
}
当我跑步时
pm.makePersistent(store.getUsers());
我得到了上述异常。知道为什么会这样吗? 我认为文档说明我可以有一个List&lt;&gt;作为一个持久的 元素,它将变成一个多值属性。
谢谢,
John Goche
答案 0 :(得分:2)
我“猜”,因为该方法接受一个对象并传入一个List。如果你想保留一个持久化对象列表,我希望调用pm.makePersistentAll()
,这就是JDO文档所说的。