Google app engine JDO应用程序引擎:尝试持久化类的列表成员时引发异常
我在AppEngine服务器上运行以下JDO代码 我收到以下错误消息: org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类java.util.ArrayList中的类不可持久化。这意味着它要么没有被增强,要么文件的增强版本不在类路径中,要么被未增强版本隐藏,或者找不到类的元数据/注释。是不持久的。这意味着它或者没有被增强,或者文件的增强版本不在类路径中,或者被未增强版本隐藏,或者找不到类的元数据 这是我的班级:Google app engine JDO应用程序引擎:尝试持久化类的列表成员时引发异常,google-app-engine,jdo,Google App Engine,Jdo,我在AppEngine服务器上运行以下JDO代码 我收到以下错误消息: org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类java.util.ArrayList中的类不可持久化。这意味着它要么没有被增强,要么文件的增强版本不在类路径中,要么被未增强版本隐藏,或者找不到类的元数据/注释。是不持久的。这意味着它或者没有被增强,或者文件的增强版本不在类路径中,或者被未增强版本隐藏,或者找不到类的元数据 这是我的班级:
@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;
}
}
我得到了上面的例外。你知道为什么会这样吗?
我认为文档中说我可以有一个列表作为一个持久的
元素,它将变成一个多值属性
谢谢
John Goche我猜是因为该方法获取一个对象,然后传入一个列表。如果您想要持久化一个持久化对象列表,我希望调用pm.makePersistentAll,这就是JDO文档所说的 我猜List类本身不支持持久性,因此必须执行pm.makePersistentstore;让它持久化。
pm.makePersistent(store.getUsers());