Google app engine JDO应用程序引擎:尝试持久化类的列表成员时引发异常

Google app engine JDO应用程序引擎:尝试持久化类的列表成员时引发异常,google-app-engine,jdo,Google App Engine,Jdo,我在AppEngine服务器上运行以下JDO代码 我收到以下错误消息: org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类java.util.ArrayList中的类不可持久化。这意味着它要么没有被增强,要么文件的增强版本不在类路径中,要么被未增强版本隐藏,或者找不到类的元数据/注释。是不持久的。这意味着它或者没有被增强,或者文件的增强版本不在类路径中,或者被未增强版本隐藏,或者找不到类的元数据 这是我的班级:

我在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());